how-to-use/cpp/C++_MJ.txt

45 lines
1.3 KiB
Plaintext

1.sizeof 不是函数,是运算符。
2.c++没有写构造函数,C++编译器不一定自动写一个默认构造函数。
3.c++会对函数名符号进行改编,可以支持函数重载(name mangling)。
4.被extern "C" { 修饰的代码会按照C语言的规则编译、声明被exeter "C"包含,CPP实现可以不要。
5.函数调用要开辟会回收栈空间。
6.incline 建议编译器 incline。
[什么时候使用inline?]
(1)函数体积不大
(2)频繁调用
7.汇编
从上往下是向下兼容,实际比如影响AX也是会影响x64中的RAX
x64
RAX\RBX\RCX\RDX : 通用寄存器
x86
EAX\EBX\ECX\EDX : 通用寄存器
16位
AX\BX\CX\DX : 通用寄存器
8位
AH H High
AL L Low
8.C++中使用内联汇编
汇编中没有;
__asm {
}
word 2字节.
move dest, src
[地址值]([]里面一定是地址值)
call 调用
字节占用都是低位=>高位占用,
已经占用的内存,内部采集大小端方式:
int a = 3;
(高 ----> 低)
00000000 00000000 00000000 00000011
[大小端] 一般来讲,大多数都是小端模式(低字节放低地址)。
lea dest, [地址值] (复制地址值)(load effect address)
mov dest, [地址值] (复制地址值内容)
xor a, b (a,b的异或结果复制给a)
add 加, sub 减, inc 自增, dec 自减, jmp 跳转
xor 异或