KEIL4编程问题(C相关)

在main函数中我随便写了一个函数名称 ,比如:sss();编译了下编译器竟然不报错。1.我写了许多头文件2.在其他调用的.C文件中随便写函数也是如此不报错我想知道这是为什么,是编译器的原因还是我编程错误

第1个回答  2017-12-28
往上翻翻,22个警告里必定有它。追问

首先,非常感谢。我个人认为警告22个是因为我有许多子函数没有调用到,所以报警告。但是我随便写了个函数,编译器却没有报错。如果是非常简单的程序一旦写了不存在的函数不是报警告而是报错!所以才问这个问题。

追答

“但是我随便写了个函数,编译器却没有报错”
因为编译器并不能判定你的这个函数入口是不是一定无效。如果是通过函数指针调用呢?如果是连接到汇编代码段呢?如果是绝对地址调用呢?
所以只有到了连接时才能由连接器进行判定。然而连接器也无法判定你这么写到底是另有深意还是真的写错了,只能支支吾吾地告诉你“先森这里好像不对哦……这个sss好像没有定义哦……伦家不知道该怎么做了啦……”,然后只好跳过不连接这个莫名其妙的符号……

本回答被提问者采纳
第2个回答  2017-12-28
都22个警告了…肯定里面有你写的那个所产生的警告追问

首先,非常感谢。我个人认为警告22个是因为我有许多子函数没有调用到,所以报警告。但是我随便写了个函数,编译器却没有报错。如果是非常简单的程序一旦写了不存在的函数不是报警告而是报错!所以才问这个问题。

追答

编译器认为错误的是真的错误,警告是可以执行但是可能结果会不对……

相似回答