内蒙古建设部网站官网,计算机编程培训学校哪家好,赣州信息网,网站icp备案条件C使用
C的源文件扩展名是#xff1a;cppC程序的入口是main函数C完全兼容c语言的语法
1、cin、cout
C中常使用cin、cout进行控制台的输入和输出
#include iostream
using namespace std;int main() {cout hello world !!! endl;retu…C使用
C的源文件扩展名是cppC程序的入口是main函数C完全兼容c语言的语法
1、cin、cout
C中常使用cin、cout进行控制台的输入和输出
#include iostream
using namespace std;int main() {cout hello world !!! endl;return 0;
}cin用的是右移运算符 ,cout用的是左移运算符 endl是换行的意思
2、函数重载(overload) 规则 函数名相同参数个数不同、参数类型不同、参数顺序不同 注意 返回值类型与函数重载无关调用函数时实参的隐式类型转换可能会产生二义性 本质 采用了name mangling或者叫name decoration的技术C编译器默认会对符号名比如函数名进行改编、修饰、有些地方也叫做“命名倾轧”重载时会生成多个不同的函数名不同编译器MSVC、g有不同的生成规则通过IDA打开VS_Release_禁止优化可以看到
3、默认参数
C允许函数设置默认参数在调用时可以根据情况省略实参规则如下 默认参数只能按照从右到左的顺序即默认参数要写在参数列表的最后如果函数同时有声明、实现默认参数只能放在函数声明中默认参数的值可以是常量、全局符号全局变量、函数名 如果函数的实参 经常是同一个值可以考虑使用默认参数
#include iostream
using namespace std;
const int age 33;void test();void display(int a, int b 22, int c 33, void (*func)() test);void test() {cout test() endl;
}void display(int a, int b, int c, void (*func)()) {cout a is : a endl;cout b is : b endl;cout c is : c endl;func();
}
int main() {display(11);return 0;
}函数重载、默认参数可能会产生冲突、二义性建议优先选择默认参数
4、extern ‘‘C’’ 被extern ‘’C’’ 的代码会按照C语言的方式去编译 如果函数同时有声明和实现要让函数声明被extern ‘C’修饰函数实现可以不修饰 由于C、C编译规则不同在C、C混合开发时可能会出现C在调用C语言的API时需要extern ‘‘C’’ 修饰C语言函数声明 有时也会在编写C语言代码中直接适用extern ‘‘C’’这样就可以直接被C调用 通过使用宏 __cplusplus来区分C、C环境
5、#pragma once
我们经常使用#ifndef、#define、#endif来防止头文件的内容被重复包含#pragma once可以防止整个文件的内容被重复包含 #ifndef、#define、#endif受C、C标准的支持不受编译器的任何限制有些编译器不支持#pragma once较老的编译器不支持如GCC3.4版本之前兼容性不够好#ifndef、#define、#endif可以针对一个文件中的部分代码而#pragma once只能针对整个文件
6、内联函数inline function
适用inline修饰函数声明或者实现可以使其编程内联函数建议声明和实现都添加inline修饰特点 编译器会将函数调用直接展开为函数代码可以减少函数调用的开销会增大代码体积 注意 尽量不要内联超过10行代码的函数有些函数即使声明为inline也不一定会被编译器内联比如递归函数 内联函数与宏的区别 内联函数和宏都可以减少函数调用的开销对比宏内联函数多了语法检测和函数特性
7、表达式
C的有的表达式是可以被赋值的
8、const
const是常量的意思被修饰的变量不可修改如果修饰的是类、结构体的指针其成员也不可更改 const修饰的是其右边的内容
9、引用
在C语言中适用指针可以间接获取、修改某个变量的值在C中适用引用可以起到跟指针类似的功能 注意点 引用相当于变量的别名基本数据类型、枚举、结构体、类、指针、数组等都可以有引用对引用做计算就是对引用所指向的变量做计算在定义的时候就必须初始化一旦指向了某个变量就不可以再改变“从一而终”可以利用引用初始化另一个引用相当于某个变量名的多个别名不存在引用的引用纸箱引用的指针引用数组 引用存在的价值之一比指针更安全、函数返回值可以被赋值引用的本质是指针只是编译器削弱了它的功能所以引用就是弱化了的指针一个引用占用一个指针的大小
10、常引用Const reference
引用可以被const修饰这样就无法通过引用来修改数据了可以称为常引用const 必须写在符号的左边才能算是常引用const引用的特点 可以指向临时数据常量、表达式、函数返回值可以指向不同类型的数据 作为函数参数时此规则也适用于const指针 可以接受const和非const实参非const引用只能接受非const实参可以跟非const引用构成重载 当常引用指向了不同类型的数据时会产生临时变量即引用指向的并不是初始化时的那个变量数组引用的两种常见写法
11、常用的汇编
ATT汇编 VS Intel汇编 x64汇编寄存器 x64汇编常用指令
12、变量地址总结
一个变量的地址是它所有字节地址中的最小值