栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++学习笔记(一)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++学习笔记(一)

C++笔记(一) 一、基础知识 1.1、函数重载
  • 同名不同参
  • 本质是编译时修改了函数名,name mangling
1.2、默认参数
int add(int a=1,int b=2){   //默认参数为1和2,不传对应实参时使用默认参数
     return  a+b;
}
  • 如果声明和实现分离,默认参数只能放在声明处

  • 默认参数从右边开始填入;

int add(int a,int b)
{
       return a+b;
}
  • 函数重载和默认参数会产生冲突,优先选择默认参数;
  • 本质:有实参就push实参,没有就push默认参数;
1.3、extern ”C“
  • 被extern ”C“修饰的代码会按照C语言的方式去编译;
extern "C"{
    void func(){
        
    }
    void func(int a){    //第二个func会编译报错,因为C编译不允许函数重载
        
    }
}
  • 声明和实现分离时,只允许在声明处加 extern “C”
#include
using namespace std;
extern "C" void func();
int main()
{
    func;
    return 0;
}
func(){
    cout<<"func"< 
  • 在C++中使用C编译的函数,在头文件函数声明处加上extern ”C“即可;在.c文件中若要使用extern "C"修饰的函数,则需要在声明处再加上如下的宏定义:
#ifdef _cplusplus
extern "C"{
#endif
    void func();
#ifdef _cplusplus
}
#endif
1.4、宏定义
#ifndef _TEST_H   //防止头文件内容被重复包含
#define _TEST_H
...
#endif    //受c/c++标准支持,不受任何编译器限制   //可以控制部分代码
#pragma once  //防止文件被重复保护   //较老编译器不支持,兼容性不够好    //对整个文件生效
1.5、inline

编译会将函数调用展开为函数体代码,免于开辟栈空间,减少函数调用开销;但增大了代码体积;递归不必用内联

  • 函数代码体积不大

  • 频繁调用

注意:内联函数中调用内联函数自身并不会将被调用的函数进一步展开

1.6、const
  • 意为常量,被修饰变量值不能修改
  • 如果修饰的是类、结构体(的指针),其成员也不可以更改;
const int *p=&age;  //*p is const
int const *p=&age;    //*p is const
int * const p=&age;   //p is const
const int * const p=&age;   //p and *p are const
  • 常引用
1.7、引用
int age = 10;
int &refage = age;
refage = 20;   //age  10->20
  • 创建引用时必须初始化,并且之后无法再将它指向其他变量----》比指针安全,不会指向不明地址处;
  • 可以使用引用为另一个引用初始化,相当于为同一个变量创建了多个别名;
int age = 10;
int &ref1 = age;   //ref1=age
int &ref2 = ref1;   //ref2=age
  • 本质是指针,编译器弱化了它,弱化指针。在汇编代码和机器码中可以看到两者是一样的;
  • 指针的sizeof()。x86是32位机器,结果是4字节;x64是64位机器,结果是8字节;
  • 野指针是指向被回收内存地址的指针
1.8、汇编语言

1、

8086汇编(16bit)

x86汇编(32)

x64(64)

ARM(嵌入式、移动设备)

……

x64汇编根据编译器不同,有两种书写格式:

intel: windows

AT&T : mac 、linux

2、汇编不区分大小写

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/347146.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号