我想在C语言中打印一个size_t
类型的变量,但是在不同的架构上size_t
被别名为不同的变量类型。例如,在一台机器上(64位),以下代码不会产生任何警告:
size_t size = 1;
printf("the size is %ld", size);
但在我的另一台机器上(32位),以上代码会产生以下警告信息:
警告:格式“%ld”期望类型为“long int *”,但参数3的类型为“size_t *”
我怀疑这是由于指针大小的差异导致的,在我的64位机器上,size_t
被别名为long int
("%ld"
),而在我的32位机器上,size_t
被别名为另一种类型。
有没有特定于size_t
的格式说明符?
&
符号? - Jens#include
int main(){
size_t size = 1;
printf("the size is %ld", size);
return 0;
}
- Ethan Heilmanwarning: format '%ld' expects type 'long int *', but argument 3 has type 'size_t *'
,但它可能应该是说warning: format '%ld' expects type 'long int', but argument 3 has type 'size_t'
。你是不是在使用scanf()
时得到这些警告? - RastaJedi