
C++/函数
文章平均质量分 73
# C++/常用函数
u013250861
这个作者很懒,什么都没留下…
展开
-
C++-函数:extern “C”【当在C++中调用C语言的方法时,利用extern “C”来解决C++编译后函数名与原始名称不一致的问题】
通过这个测试,由于c++中需要支持函数重载,所以c和c++中对同一个函数经过编译后生成的函数名是不相同的,这就导致了一个问题,如果在c++中调用一个使用c语言编写模块中的某个函数,那么c++是根据c++的名称修饰方式来查找并链接这个函数,那么就会发生链接错误,以上例,c++中调用MyFunc函数,在链接阶段会去找Z6Myfuncv,结果是没有找到的,因为这个MyFunc函数是c语言编写的,生成的符号是MyFunc。那么如果我想在c++调用c的函数怎么办?,而不是按c++的方式。原创 2024-07-20 18:12:13 · 404 阅读 · 0 评论 -
C++-函数:函数重载【同一个作用域、参数个数不同、参数类型不同、参数顺序不同】【实现原理:编译器根据不同的参数类型来重新修改原函数名得到不同的重载函数名】
能使名字方便使用,是任何程序设计语言的一个重要特征!我们现实生活中经常会碰到一些字在不同的场景下具有不同的意思,比如汉语中的多音字“重”。当我们说: “他好重啊,我都背不动!”我们根据上下文意思,知道“重”在此时此地表示重量的意思。如果我们说“你怎么写了那么多重复的代码?维护性太差了!”这个地方我们知道,“重”表示重复的意思。同样一个字在不同的场景下具有不同的含义。那么在c++中也有一种类似的现象出现,同一个函数名在不同场景下可以具有不同的含义。原创 2024-07-20 17:58:51 · 789 阅读 · 0 评论 -
C++-函数:内联函数【代替宏函数,解决宏函数的缺陷】【在c中经常把一些短并且执行频繁的计算写成宏,而不是函数,这样做的理由是为了执行效率,宏可以避免函数调用的开销,这些都由预处理来完成,空间换时间】
当调用一个内联函数的时候,编译器首先确保传入参数类型是正确匹配的,或者如果类型不正完全匹配,但是可以将其转换为正确类型,并且返回值在目标表达式里匹配正确类型,或者可以转换为目标类型,内联函数就会直接替换函数调用,这就消除了函数调用的开销。内联函数具有普通函数的所有行为。内联函数为了继承宏函数的效率,没有函数调用时开销,然后又可以像普通函数那样,可以进行参数,返回值类型的安全检查,又可以作为成员函数。内联函数的确占用空间,但是内联函数相对于普通函数的优势只是省去了函数调用时候的压栈,跳转,返回的开销。原创 2024-07-20 17:49:22 · 570 阅读 · 0 评论 -
C/C++-打印:printf、cout详解【printf(“%s\n“ , “this is a test!“);】【std::cout << “this is a test!“;】
C中格式字符串的一般形式为: %[标志][输出最小宽度][.精度][长度]类型,其中方括号[]中的项为可选项。原创 2024-07-20 13:57:24 · 482 阅读 · 0 评论 -
C++-函数:c_str()【返回一个指向正规C字符串的指针, 内容与本string串相同】【为了与c语言兼容,在c语言中没有string类型,须通过string对象的成员函数c_str()来转换】
c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.这是为了与c语言兼容,在c语言中没有string类型,故必须通过string对象的成员函数c_str()把string 对象转换成c中的字符串样式。注意:一定要使用strcpy()函数 等来操作方法c_str()原创 2022-11-16 22:32:52 · 222 阅读 · 0 评论 -
C/C++:函数参数传递的三种情况【传值(a):不能改变实参】【传地址(*a)(本质还是传值):可改变实参】、【传引用(&a):可改变实参】
(1)传值,就是把你的变量的值传递给函数的形式参数,实际就是用变量的值来新生成一个形式参数,因而在函数里对形参的改变不会影响到函数外的变量的值。(2)传址,就是传变量的地址赋给函数里形式参数的指针,使指针指向真实的变量的地址,因为对指针所指地址的内容的改变能反映到函数外,也就是能改变函数外的变量的值。(3)传引用,实际是通过指针来实现的,能达到使用的效果如传址,可是使用方式如传值。说几点建议:如果传值的话,会生成新的对象,花费时间和空间,而在退出函数的时候,又会销毁该对象,花费时间和空间。因而如果int,原创 2022-06-07 00:43:47 · 1465 阅读 · 0 评论