ANSI C是由(ANSI)及(ISO)推出的关于C语言的标准。ANSI C 主要标准化了现存的实现, 同时增加了一些来自 C++ 的内容 (主要是函数原型) 并支持多国字符集 (包括备受争议的三字符序列)。 ANSI C 标准同时规定了 C 运行期库例程的标准。
不匹配的原因:
旧的 C 编译器 (包括未使用原型和变长参数列表的 ANSI C) 会 ``放宽" 传入 函数的某些参数。 浮点数被升为双精度浮点数, 字符和段整型被升为整型。 对于旧式的函数定义, 参数值会在被调函数的内部自动转换为对应的较窄 的类型。
怎么写可以避免警告呢?
int func(float x) { ... }
extern int func(double);
const 关键字含义是 ``只读的"; 用它限定的对象是运行时 (同常) 不能被赋值的对象。因此用 const 限定的对象的值并 不完全是一个真正的常量。
为什么要用const
“它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一定帮助。” ——引自百度百科
const的主要作用:
未完待续