sizeof 연산자의 대상은 변수명이 좋을까요? 아니면 타입명이 좋을까요?
글쓴이: ktd2004 / 작성시간: 월, 2006/06/19 - 8:37오후
sizeof 연산자를 다음과 같이 사용할 수 있다고 알고 있습니다.
int a, b; printf("sizeof a : %d\n", sizeof(a)); /* 1번 방법 */ printf("sizeof b : %d\n", sizeof(int)); /* 2번 방법 */
여러분은 어떤 방법을 선호하시는지요?
제가 생각해 본 결과는 다음과 같습니다.
1. sizeof 연산자의 대상으로 변수명을 사용할 경우.
단점 : 변수가 배열형태로 변경될 경우에 문제가 될 수 있다.
2. sizeof 연산자의 대상으로 타입명을 사용할 경우.
단점 : 해당 변수의 타입이 변경될 경우에 문제가 될 수 있다.
어느 한 방법이 무조건 옳다라고는 말을 못할 것 같습니다.
어떤 방법이 더 좋을까요? 어떤 방법을 주로 사용하시나요?
Forums:
저의 경우에는
저의 경우에는 단일변수가 배열로 바뀌는 경우보다 타입이 바뀌는 경우가 더 많아서
sizeof에는 변수의 이름으로 사용합니다.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
변수명의 크기.
부득이한 경우를 제외하고는 항상 변수명을 사용합니다.
심지어, 단항연산자의 이점을 최대한 살려서 ( ) 도 쓰지 않습니다.
저의 경우 ()를 쓸 때는 그것이 type일때 뿐입니다.
---
http://coolengineer.com
괄호...
int val;
sizeof val; // ok
siveof int; // error!
저래서 웬지 일관성이 없어 보이더군요....
(혹시 모르시는 분 있으실까봐... type명일때 괄호는 필수입니다. 변수명일때는 선택...)
이 문제를
이 문제를 생각하게된 계기가 다음과 같은 코드때문입니다.
위 코드를 변경한 후, 한참을 문제를 찾았습니다.
두가지 방법이 모두 장/단점이 있으니 고민이 되더군요.
정답은 없는 것 같아서, 많은 분들이 사용하고 계신 방법을 사용하려고 글을 올리게 되었습니다.
[여담]
pynoos님 잘 지내시고 계시죠. 저 tdkim입니다.
한동안 TSVN의 commit 로그에 보이지 않으시더군요.. ^^;
날씨가 더운데 건강 조심하십시오. (대한민국 파이팅)
write( fd, &a[0],
write( fd, &a[0], sizeof(a));
이것도
write( fd, &a[0], sizeof(a[0]));
으로 바꾸셨으면, 문제가 발생하지 않았을텐데요.. ;)
p.s.
얼마전 커밋이 안되는 일이 있은 이후로 다시 시도 하지 않아서 안올렸네요. ^^;
그리고 요즘 쉬는 시간에는 블로그 API 플러긴 만드느라 정신 없습니다. ;)
---
http://coolengineer.com
저도 변수명을
저도 변수명을 사용합니다.
타입을 사용하는 경우는...
printf( "sizeof(int)=%d\n", sizeof(int) );
따위의 경우 밖에 없죠.
예로 드신 경우는... 한참 봤습니다만, pynoos님의 말씀대로
write( fd, &a[0], sizeof(a[0]) ) ;
로 하는게 맞는 것 같습니다. 의도에 따라서는
write( fp, a, sizeof(a) ) ;
이렇게 하는게 맞지 않을까 싶구요.
저는 종종 이런 식으로도 사용합니다.
fwrite( a, sizeof(a[0]), sizeof(a)/sizeof(a[0]), fp ) ;
많은 분들이 countof() 매크로를 사용하시는데,
전... 키보드가 기계식이라 그런지 몇자 더 치고 말아요. ^^;
----
재미없는 일은 하지 말자는 인간 쓰레기.
-.-;
--------------------------------------
재미없는 일은 하지 말자는 인간 쓰레기.
-.-;
기능상으론 sizeof(a)가
기능상으론 sizeof(a)가 좋아보이는데
모양상 보기좋아서 sizeof(int)라고 사용합니다.
댓글 달기