struct key {
char *keyword;
int count;
} keytab[] = { \"break\", 0, \"case\", 0, \"char\", 0, \"while\", 0};
(1) 다음의 상수 NUM 값은 얼마인가?
#define NUM (sizeof(keytab) / sizeof(struct key))
구조체는 크기가 컴파일러 멋대로 정하지 않나여
struct key {
char *keyword;
int count;
} keytab[] = { \"break\", 0, \"case\", 0, \"char\", 0, \"while\", 0};
(1) 다음의 상수 NUM 값은 얼마인가?
#define NUM (sizeof(keytab) / sizeof(struct key))
구조체는 크기가 컴파일러 멋대로 정하지 않나여
그거 빼고 그냥 계산하면 될듯.
뭐야.. 그냥 나누는거잖아 아닌가 -ㅅ-
struct key의 크기가 얼마든 상관 없잖아
0이 아닌 다음에야
구조체 크기를 왜 컴파일러 마음대로 정하나여 - -;; 책보면 나오는데
LibeRa // 완전히 멋대로는 아니지만 padding 등의 영향으로 플랫폼마다 얼마든지 달라질 수 있음.
아니 근데 문제는, 정말로 지좆대로 구조체 크기가 정해져도 저 문제 푸는 거하고는 아무런 상관이 없다니깐?
약분도 못함?;;;
아 너무 어렵다.
분모와 분자에 똑같은 변수 a가 있으니 아무런 상관이 없습니다만-_-..
각각 사이즈가 (sizeof(keytab) / sizeof(struct key) -> 32 / 8 = 이 나오네염.... 그런데 상관 없다뇨..? keytab가 4바이트라서 x 4 해서 32고 구조체크기는 8?? 상관이 없다는게 잘이홰가 안되염,.
뭐 하기사 - -;; 상관은 없어보이는데
걍 4 안 나옴 ?
keytab의 타입이 뭐냐?
구조체 변수 ... 4byte?
저 구조체의 크기가 1이든 10이든 100이든 상관이 없다는 이야기임.
타입이 뭐냐고 물었다
구조체의 크기와 구조체 배열의 크기는 정비례하니까 상관이 없다는 이야기.
나누는거니깐 상관없지않음?
타입이면 정수형 실수형 문자형 이런거 말하는건데.. 구조체에 그런게 있었나요.. 그냥 배열(포인터)아닌가염.,. 개념이 없어서 헷갈리네염
그러니까 구조체변수 크기 = 구조체 본체 크기 인가여
struct key [4]가 keytab의 타입이잖아. 그럼 저 놈은 크기가 무조건 struct key의 4배일 수밖에 없잖냐고
타입 개념도 안 박혀 있으니 제대로 된 설명을 할 수가 없네
이해 했슴다... 돌깬다고 수고 하셧어요.....
typedef struct key keytab[4] 이런걸 거쳐서 나온게 타입인가여
그건 타입에다 별칭을 붙여주는 거고
타입이란 건 어떤 변수나 값의 형식을 결정짓는 거라고 보면 된다. 쉽게 생각해서, int 타입으로 선언된 a는 정수 숫자라는 형식의 값을 받아들이지? 뭐 그런 개념. C에선 int나 char 같은 기초적인 타입이 있고, 어떤 타입의 값을 가리키는 포인터 타입, 어떤 타입의 값 여러 개를 가지는 배열 타입, 여러 타입들을 묶어놓은 구조체 타입 등등이 있다
자세한 설명 감사드려요
int 사이즈가 4든 5든 100이든 100000 이든 int / int[4] 는 무조건 4
int 사이즈가 4든 5든 100이든 100000 이든 int[4] / int 는 무조건 4