2012年6月16日 星期六
C語言 - gcc: warning: no newline at end of file
C++標準規定,一個源文件,除非是空的,否則最後一行必須是空行。這不是為了語法分析,而是為了連接文件的時候方便。
解決方式:試著在程式最後一行多按一個enter,存檔即可解決
References:
[1] http://cross-script.blogspot.tw/2011/07/gcc-warning-no-newline-at-end-of-file.html
[2] http://luabear.blogspot.tw/2009/04/warningno-newline-at-end-of-file.html
[3] http://blog.xuite.net/casio515/blog/21528505
2012年6月3日 星期日
C語言 - 簡單小考題(2) - C強制轉型
What's the output in this function?
void foo(void)
{
unsigned int a = 6;
int b = -20;
(a+b > 6) ? puts("> 6") : puts("<= 6");
}
The answer is "> 6"
Why?
原因是當表達式中存在有符號類型和無符號類型時所有的操作數都自動轉換為無符號類型(unsigned)。因此-20變成了一個非常大的正整數,所以該表達式計算出的結果大於6
void foo(void)
{
unsigned int a = 6;
int b = -20;
(a+b > 6) ? puts("> 6") : puts("<= 6");
}
The answer is "> 6"
Why?
原因是當表達式中存在有符號類型和無符號類型時所有的操作數都自動轉換為無符號類型(unsigned)。因此-20變成了一個非常大的正整數,所以該表達式計算出的結果大於6
Reference:
訂閱:
文章 (Atom)