如果long int
和int
在平台上的表示是相同的,那么它们是否完全相同?根据C标准,这些类型在平台上的行为是否有任何不同?
例如.这是否始终有效:
int int_var;
long long_var;
void long_bar(long *l);
void int_bar(int *i);
void foo()
{
long_bar(&int_var); /* Always OK? */
int_bar(&long_var);
}
我猜同样的问题也适用于short和int,如果它们恰好是相同的表示形式.
在讨论如何在没有stdint的情况下为嵌入式C89编译器定义类似于int32_t
的typedef时,出现了一个问题.h、 即as int
或long
,以及是否重要.