c/c++关键字,相互调用

一、函数重载:
在同一个作用域中,如果有多个函数的名字相同,同一个作用域,但是形参列表不同(参数类型不同或参数个数不同),返回值类型可同也可不同,我们称之为重载函数。重载的函数是通过形参列表区分的,与返回值类型无关。函数重载其实是"一个名字,多种用法"的思想,不仅函数可以重载,函数重载就是重定义;覆盖是重写。

二、new和malloc的区别:
1.new关键字 malloc函数
2.new自由存储区域 malloc堆上
3.new malloc
operator new
constructor
还可以做初始化 malloc 单纯开辟内容
4.new可以重载 malloc不能重载
5.new可以调用malloc malloc不能调用new
6.内存开辟 new抛异常 malloc返回NULL
7.new可以开辟常量 malloc不能

三、c和c++中的const
1、const修饰变量
const修饰变量,可以使变量具有常属性,也就是该变量在以后的使用中其值都不能 进行改变。(要进行初始化)
2、const修饰指针
int *const p // p不可以变,p指向的值可以变
int const *p // p可以变,p指向的值不可以变
3、保护函数参数不被改变
用const修身函数的参数,可以保证该参数的值在函数内部不被改变。 (一般用引用或者传地址的方式给函数传递一个参数,如果在函数体内对该参数进行修改,那么就会连实参的值一并进行修改。)
4、const修饰函数返回值
const修饰函数的返回值,防止函数的返回值被修改,但是这里要注意的是,必须也用 const修饰的变量来接收这个函数的返回值
5、const修饰类成员函数
const可以修饰类成员函数,防止类成员函数中除了static成员之外的其他成员被修改。
6、const修饰类的成员变量
类的成员变量可以分为静态的和非静态的,如果const修饰的是静态的成员变量,可以在构造函数中对该变量进行初始化;如果const修饰的是静态的成员变量,则需要在类外对该变量进行初始化。

四、引用:
1、引用是一个别名(底层以指针做支持)
2、引用一定要初始化
3、引用不能引用取地址的数据
4、引用不能改变
5、引用变量 只能使用 引用变量 所有引用的数据

五、inline函数:
编译阶段 在代码的调用点直接代码展开
inline函数和static修饰的函数的区别
1.inline函数 无开栈和清栈开销
static 有
2.inline 在调用点直接代码展开
static 函数符号属性 l
3、inline函数和宏的区别
inline 编译 类型检查 和 安全检查
宏 预编译 无
inline是一个更安全的宏
4、注意事项
实现在.h文件
只在Release版本生效
给编译器的一个建议 递归 循环 switch
基于实现,不是声明
5、inline缺点
以代码膨胀为代价 空间换时间
6、建议
开栈的开销 > 执行的开销 建议设为inline
开栈的开销 < 执行的开销 不建议

六、函数的默认值:
1.自右向左依次赋予
2.不能重复赋予
3.一般赋在声明上

七、c/c++互相调用
1.C++调用C
c++源文件 extern “C”
2.C调用C++
c++源文件可修改 extern “C”
c++源文件不可修改 加中间层 .cpp
3.不明确编译器
#ifdef __cplusplus

八、static:
1、对于非静态数据成员,每个类对象都有自己的拷贝。而静态数据成员被当作是类的成员。无论这个类的对象被定义了多少个,静态数据成员在程序中也只有一份拷贝,由该类型的所有对象共享访问。
2 、静态数据成员存储在全局数据区。定义时要分配空间,所以不能在类声明中定义。由于静态数据成员属于本类的所有对象共享,所以,它不属于特定的类对象,在没有产生类对象时其作用域就可见,即在没有产生类的实例时,程序员也可以使用它。
3、 静态数据成员和普通数据成员一样遵从public,protected,private访问规则;
4 、static成员变量的初始化是在类外,此时不能再带上static的关键字private,protected 的static成员虽然可以在类外初始化,但是不能在类外被访问。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言和C++可以通过以下几种方法进行互相调用: 1. 通过 extern "C" 声明:C++ 语言支持 extern "C" 声明,可以将 C++ 语言中的函数使用 C 语言的约定方式进行编译,从而可以被 C 语言调用。在 C++ 中,通过在函数声明前加上 extern "C" 关键字,可以将该函数使用 C 语言的命名规则和调用约定进行编译。例如: ```c++ // C++ 中的函数声明 extern "C" { int add(int a, int b); } // C 语言中的函数调用 int result = add(1, 2); ``` 2. 通过头文件声明:在 C++调用 C 语言的函数时,需要将 C 语言的函数声明放在 extern "C" 的花括号中,并将其放在头文件中。在 C++ 中包含该头文件后,就可以使用 C 语言中的函数了。例如: ```c // C 语言中的头文件 #ifdef __cplusplus extern "C" { #endif int add(int a, int b); #ifdef __cplusplus } #endif // C++ 中包含头文件并调用函数 #include "c_functions.h" int main() { int result = add(1, 2); return 0; } ``` 3. 使用 extern 声明:在 C++ 中定义的函数可以通过 extern 声明,在 C 语言中进行调用。在 C++ 中,可以在函数声明前加上 extern 关键字,并使用 C 语言的命名规则进行函数命名。在 C 语言中,可以使用该函数的 C 语言方式的名称进行调用。例如: ```c++ // C++ 中定义的函数 extern "C" { int cpp_add(int a, int b) { return a + b; } } // C 语言中调用该函数 int result = cpp_add(1, 2); ``` 上述方法可以使得 C 语言和 C++ 语言之间进行函数调用和数据传递,从而实现两种语言的相互调用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值