代码改变世界

c 语言调试所遇到的问题

2013-01-15 20:48  金融与IT的极速狂想曲  阅读(468)  评论(0编辑  收藏  举报

warning:

一、关于 implicit declaration of function 一点经验之谈

用gcc编译c程序的时候 经常会出现
implicit declaration of function '...' 的warning

偶经过这几天的经验,发现主要有2种情况会产生这种warning

1   没有把函数所在的c文件生成.o目标文件
2   在函数所在的c文件中定义了,但是没有在与之相关联的.h文件中声明

二、但是此调用处编译出现warming如下:
warning: assignment makes pointer from integer without a cast

请问为啥会有这样的warming,如何修改才能不出现这样的warming?

answer:

没有函数声明。

未经声明的函数原型一律默认为返回int值

这样、就相当于你调用了int cfg_get(const char *name); 
但是把返回值赋给了char*变量.

三、switch引发的错误:a label can only be part of a statement and a declaration is not a statement

GCC:

error: a label can only be part of a statement and a declaration is not a statement

 

switch(a){        swtch(a){

case 1:         case 1:

....................       {

....................        ...............

....................        ...............

break;          ................

case 2:         }

break;          break;

}            case 2:

             break;

            }

Error         OK