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

Reference:

C語言測試 想成為嵌入式程序員應知道的0x10個基本問題

C語言測試 想成為嵌入式程序員應知道的0x10個基本問題 (某網友找到的中文翻譯)

網路上找到的,有些還不太確定= =..... 真糟糕 加油加油