C
-
int type을 bool type으로 활용하는 방안IT/Linux C 2013. 1. 18.
C언에서 !을 사용하게 되면, 0이 아닌 숫자의 경우에 대해서 0으로 변경하고 0인 경우에는 1로 값을 변화시켜준다. !을 한번만 사용하게 되면 자연스럽게 0 or 1의 값을 갖게 되고 !!을 하게 되면 최초 0일 경우에는 0으로 그리고 0이 아닌 값인 경우에는 1로 값이 변환되게 된다. 즉, bool type처럼 0 or 1의 값으로 활용 가능하다. int i = 12345; printf("%d\n", !i); printf("%d\n", !!i); 출력01 위의 내용들이 사실 필요할까 싶지만 다음의 linux kernel에서의 일부 코드를 살펴보면, static int ethtool_get_one_feature(struct net_device *dev, char __user *useraddr, u32 ..
-
C언어, enum 타입의 크기는?IT/Linux C 2012. 12. 19.
enum 타입으로 정의된 리스트를 정리하고 있다가, 최대치가 궁금해서 간단한 확인을 해보았다. 변수들은 일반적으로 sizeof를 이용하여 크기를 알아 낼 수 있는데, sizeof(enum)이 안되기 때문에, struct로 enum 타입을 감싸고 sizeof로 크기를 확인해보았다. linux 64bit 그리고 gcc 컴파일러를 사용하였다. #include enum enum_number { ONE, TWO, THREE }; struct enum_struct { enum enum_number num; }; int main(int argc, char* argv[]) { printf("enum:%ld\n",sizeof(struct enum_struct)); return 0; } enum:4 4byte 크기면, e..