导航:首页 > 源码编译 > 为什么编译器其他函数识别不了

为什么编译器其他函数识别不了

发布时间: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编译器不支持这两个函数。

阅读全文

与为什么编译器其他函数识别不了相关的资料

热点内容
gcc中的编译选项 浏览:183
程序员长沙开滴滴 浏览:136
十几加几的进位加法算法 浏览:379
c语言实现字母加密成字母 浏览:323
linux重启java服务 浏览:48
ubuntu的命令行在哪里 浏览:979
服务器tk是什么意思 浏览:392
防止软件加密码卸载 浏览:177
自建服务器与云服务器 浏览:537
已解压车能过户能买吗 浏览:770
上网行为linux 浏览:348
解压对身体的好处 浏览:67
php服务端框架 浏览:450
gitlabpdf 浏览:607
大专程序员面试公司 浏览:948
iphone相片不能新建文件夹 浏览:446
底部加密封条 浏览:494
linux变量字符串 浏览:432
苹果解压视频在哪里找 浏览:968
中国程序员发现最大程序漏洞 浏览:778