這是一個今天的面試問題。但我不知道......
我覺得面試官meaned CPU的字大小。
我覺得像這樣的答案:
int cpu_bits(void *dummy1, void *dummy2)
{
long offset = (long)&dummy2 - (long)&dummy1;
int ret = 0;
if (8 == offset)
ret = 64;
else if (4 == offset)
ret = 32;
else if (2 == offset)
ret = 16;
else if (1 == offset)
ret = 8;
else
ret = -1;
return ret;
}
int main()
{
printf("%d\n", cpu_bits(NULL, NULL));
return 0;
}
結果似乎是正確的,你這麼認爲嗎?
我會開始通過詢問面試官的**確切定義**字的大小,他們想到了...... – NPE
@PaulR如果字大小,如果8位呢?在C中,int總是至少16位。 – Juho
@Juho:是的,現在我已經撤回了我的回答和評論,我已經有時間考慮了...... ;-) –