亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        包含庫頭文件注意事項

        字號:

        考試大今天,就給大家說一說使用頭文件得注意的地方.
            給大家一個例子吧:
            #include
            #define BUFSIZ 128
            int main(void)
            {
            return 0;
            }
            編譯一下,給現(xiàn)了一個警告:
            Compiling D:\TURBOC2\NONAME.C:
            Warning D:\TURBOC2\NONAME.C 2: Redefinition of ’BUFSIZ’ is not identical
            examda提示: 原來是在stdio.h頭文件中也宏定義了BUFSIZ.
            因此,我們在使用宏時,不能和頭文件中定義的宏相同.這點值得大家注意.
            還有頭文件中的函數(shù)也得注意,我們選用的函數(shù)名也不能和頭文件中的函數(shù)名相同.
            看一看下面的例子:
            #include
            char unlink(void);
            int main(void)
            {
            return 0;
            }
            char unlink(void)
            {
            }
            編譯一下,出現(xiàn)了二個錯誤:
            Error D:\TURBOC2\NONAME.C 2: Type mismatch in redeclaration of ’unlink’
            Error D:\TURBOC2\NONAME.C 8: Type mismatch in redeclaration of ’unlink’
            由于stdio.h中有int _Cdecl unlink (const char *path);的聲明,
            而你又使用unlink作為函數(shù)名,出現(xiàn)了重名.編譯器會把代碼中的出現(xiàn)unlink函數(shù)
            看作是unlink()的定義,因此,就出現(xiàn)的重定義函數(shù)時的參數(shù)類型不對.
            但我把上出的代碼改一下:
            #include
            int unlink(const char* path)
            {
            printf("%s",path);
            }
            int main(void)
            {
            unlink("OK?");
            return 0;
            }
            編譯一下,沒有出現(xiàn)錯誤,再鏈接一下,也沒有出現(xiàn)錯誤.
            結(jié)果:
            OK?
            也就是說,鏈接器并沒有鏈接庫函數(shù)unlink().
            說明鏈接器不是把所的頭文件中的庫函數(shù)都鏈接,而是把代碼中使用到的庫函數(shù)鏈接.
            而代碼使用的unlink()在代碼中已經(jīng)定義了,所以鏈接器并不鏈接unlink()庫函數(shù).
            所以這樣做問題是沒有,但也得注意一下,這樣做是不是妥當.