【发布时间】:2012-09-17 05:36:18
【问题描述】:
void sizeof_test2();
void sizeof_test2()
{
int array[5];
size_t arr_size = sizeof(array);
printf( "sizeof:\n"
"array = %d\n"
"arr_size = %d\n", sizeof(array), sizeof(arr_size));
}
GCC 编译器输出:
sizeof_test2.c: In function `sizeof_test2':
sizeof_test2.c:6: error: `size_t' undeclared (first use in this function)
sizeof_test2.c:6: error: (Each undeclared identifier is<br>
reported only once sizeof_test2.c:6: error: for each function it<br>
appears in.) sizeof_test2.c:6: error: parse error before "arr_size"<br>
sizeof_test2.c:10: error: `arr_size' undeclared (first use in this<br>
function) make[2]: [build/Debug/Cygwin-Windows/sizeof_test2.o]<br>
Error 1 make[1]: [.build-conf] Error 2<br>
不知道为什么会出现这个错误,通过printf 显示 size_t 类型的正确方法是什么?
【问题讨论】:
-
size_t是在stdlib.h中定义的(我认为),因为您遇到了未声明的错误。 -
添加了这个:#include
问题得到了解决.. 应该想到这一点,我确实通过 NetBeans 导航到标题但没有想到实际包含它..谢谢。 -
就是这个。
stdlib.h我想把它拉进去,因此我有点困惑。 -
另外,您使用的
printf格式代码错误:stackoverflow.com/questions/4150056/printf-for-size-t -
可以使用
%d格式代码(参见 Deitel - C: How to Program,第 6 版的第 271 页)
标签: c arrays printf sizeof size-t