baizy77 发表于 2018-9-8 18:09:31

C++老鸟日记016 为什么调用函数前需要进行函数声明

本帖最后由 baizy77 于 2018-10-1 20:50 编辑

版权声明---------------------------------------------------------------------------------------------------------------------该文章原创于Qter开源社区(www.qter.org)作者: 女儿叫老白 (白振勇)转载请注明出处!---------------------------------------------------------------------------------------------------------------------课程目录:《C++老鸟日记》目录本套课程属于:《C++跨平台开发干货》系列课程。-----------------------------------------------------------------------------
引言-----------------------------------------------------------------------------       在C语言中,函数调用前无需进行声明,在C++中语法变得严格了,调用函数前必须进行声明,这是为什么呢?
正文-----------------------------------------------------------------------------在C++中,是否所有函数在使用前都必须被声明?(P173,第2段)每个独立的c文件(.cpp 或,c)是一个翻译单元。编译器在每个翻译单元独立运行,这时它只能看到这个单元。因此头文件所提供的信息是非常重要的,它决定了编译器对程序的其他部分的理解。在头文件中的声明或在cpp的某个部分的声明是非常重要了,这样编译器可以明确知道需要做什么。比如,在头文件中声明:void function(double),编译器知道,如果传入一个整数,那么需要把它转化为都double再调用该接口(这被叫做提升promotion)。如果没有这样声明,编译器简单的假设有一个function(int)存在,它不会做提升,错误数据就会被悄悄传递给function()。因为传输的数据在内存中是按照int格式保存的而非double格式。---------------------------------------------------------------------------参考资料:《C++编程思想》两卷合订本中文版P125第一段),(美) Bruce EckelChuck Allison著

tan 发表于 2018-9-11 09:47:42

好东西,数据安全性。      
问个问题哈。这个cjson。
floatvalue;
    value= cJSON_GetObjectItem(taskArry1,"preWarnValue")->valuedouble;怎么value 是0.0呢?   本来是40.0.

baizy77 发表于 2018-9-24 19:42:56

tan 发表于 2018-9-11 09:47
好东西,数据安全性。      
问个问题哈。这个cjson。
floatvalue;


很抱歉,这个问题我不了解呢,没法解答。
页: [1]
查看完整版本: C++老鸟日记016 为什么调用函数前需要进行函数声明