失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Linux调试时常见问题 C程序在linux下调试时经常出现的问题

Linux调试时常见问题 C程序在linux下调试时经常出现的问题

时间:2024-03-16 23:26:26

相关推荐

Linux调试时常见问题 C程序在linux下调试时经常出现的问题

1、warning: assignment makes pointer from integer without a

cast

原因:类型不匹配,如将一个int型数值赋给一个指针类型参数,或char* p = "

",以及运算符优先级弄错,都会出现这样的警报。举例如下:

运算符优先级弄错:

原语句是这样的:

if (str=strstr(tp,"ALLRECORD")!= NULL)

分析:由于!=的优先级高于=,所以会先计算strstr(tp,"ALLRECORD"))!=

NULL这个表达式,这个表达式的计算结果会是TRUE or

FAILUER,也就是int型,而str是char*,所以将int型赋值给char*,难怪会报warning: assignment

makes pointer from integer without a cast这样的错误。

修改:

if ((str=strstr(tp,"ALLRECORD"))!= NULL)

这样就ok了。

将一个int型数值赋给一个指针类型参数:

int code=0;

char* p;

p = code;

一般使用套路:

char *ipstr

= "10.7.1.11";struct in_addr

ipaddr;

unsigned long

ip;if(!inet_aton(ipstr, &ipaddr))

perror("error\n");

ip = ntohl(ipaddr.s_addr);

char* p =

" ":

应改为:char* p = ' ';

有时在用gcc编译时输入gcc -Wstrict-prototypes ,编译器会告诉你问题出在哪里。

2、empty character constant

原因:" "改为' ',有时''应改为'\0'.要记得单引号~~~~~~

如果觉得《Linux调试时常见问题 C程序在linux下调试时经常出现的问题》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。