導航:首頁 > 源碼編譯 > 為什麼編譯器其他函數識別不了

為什麼編譯器其他函數識別不了

發布時間:2025-03-13 09:32:04

⑴ c語言的gets函數編譯不成功阿,很短的程序

C語言的gets函數一般包含在stdio.h頭文件里,如果沒有包含比頭文件那可能會有問題。第二種情況包含了還出問題,說明你的編譯器已經不支持這個函數了,這個函數非常不安全,容易造成溢出,建議換成fgets函數。

函數原型

char *fgets(char *buf, int bufsize, FILE *fp);

數解釋:

參數一是輸入字元串存放地址,

參數二是存放地址最大容量,

參數三是從哪裡輸入,可以從文件也可從輸入設備,如果從輸入設備輸入這個參數可以寫成stdin,如果從文件輸入此參數為文件指針。

返回值

輸入成功返回參數一,失敗返回NULL.

補充知識:

為什麼gets不讓用呢,我們可以看它的原型:char *gets(char *buf);

這個函數可以一直輸入知道換行或者EOF,它並不考慮buf空間是否足夠大能放下,這就容易導致溢出,有些別有用心的人就會利用這個漏洞去攻擊你的程序。

而fgets可以通過第二參數保證不會讀入超過buf空間的字元。

⑵ 為什麼在linux中strlwr()不能編譯通過,已經查看過<string.h>,的確在頭文件中沒有

strlwr和strupr都不是標準的C庫函數!有些編譯器不支持很正常,編譯器不支持的,只能自己定義這兩個函數並且用代碼自己去實現它。
個人使用過VC++2010,是可以編譯通過的,證明VC++2010里邊的編譯器支持這兩個函數。
而linux中的GCC編譯器則編譯不通過,證明linux下的GCC編譯器不支持這兩個函數。

閱讀全文

與為什麼編譯器其他函數識別不了相關的資料

熱點內容
火影忍者手游助手app怎麼下 瀏覽:832
1997年四川空氣壓縮機廠 瀏覽:161
思科配置保存命令是什麼 瀏覽:11
python培訓知乎 瀏覽:755
作業文件夾怎麼收藏 瀏覽:529
安卓系統如何授權懸浮窗 瀏覽:977
壓縮包加密可以用漢語嗎 瀏覽:948
ip池源碼 瀏覽:490
緩解壓力大放鬆一下的地方 瀏覽:928
工廠哪裡用壓縮空氣 瀏覽:328
centos如何安裝php 瀏覽:110
丹鳳伺服器是什麼 瀏覽:148
分析html5源碼 瀏覽:994
資治通鑒中華書局pdf 瀏覽:212
如何搭建伺服器和資料庫 瀏覽:537
論文app怎麼用 瀏覽:466
開源文件伺服器加密 瀏覽:588
哈利波特游戲選什麼伺服器 瀏覽:424
雲伺服器怎樣格式化 瀏覽:16
框架柱頂部箍筋加密區規范 瀏覽:169