C/C++学习笔记

1、预处理

文件编译前会先对文件进行预处理

1)#include<file>/#include"file"

参考: [C/C++基础知识] main函数的参数argc和argv_c++的main函数传参-CSDN博客

将头文件file的全部内容复制粘贴到本文件对应位置中。

<>和""的区别为寻找file的方式不同。

2)#define st st_replace

宏定义,将文件中出现的全部字符串st替换为字符串st_replace。

3)#undef

参考:#undef 的用法及其意义_#undef 用法-CSDN博客

取消宏定义。

#define A 50  
#include "a.h"  
#undef A 

// 如此保证了宏变量A只能在a.h的代码中使用,
// #undef A下的代码无法使用A
4)#if/#elif/#else

                                       

满足条件的代码段包含入本文件内

5)#ifdef/#ifndef

#ifdef如果宏已经定义,则编译该代码。

#ifndef如果宏没有定义,则编译该代码。

6)#error

#error停止编译并显示错误信息

2、extern关键字

使用 extern声明一个变量或函数意味着该变量或函数的定义在另一个文件中,而不是在当前文件中。这可以让编译器知道这个变量或函数存在,即使它在当前文件中没有定义。

若某文件中定义的特定变量或函数用于供其他文件使用,但由于该文件不需要被包含入其他文件的头文件中,能确保该文件定义的特定变量或函数可以供其他文件使用的同时,该文件的其他代码不被其他文件知道,保证了安全性。

3、static

参考: c语言中static关键字用法详解-CSDN博客

1)静态局部变量,分配空间在全局数据区,当退出该局部变量的作用域时,该静态局部变量仍存在,且再次进入该作用域后能继续使用。

2)静态全局变量,在全局数据区分配存储空间。

普通全局变量对整个工程可见,其他文件可以使用extern外部声明后直接使用。也就是说其他文件不能再定义一个与其相同名字的变量了(否则编译器会认为它们是同一个变量)。

静态全局变量仅对当前文件可见,其他文件不可访问,其他文件可以定义与其同名的变量,两者互不影响。

3)静态函数,类似于静态全局变量,只能在声明它的文件中可见,其他文件不能引用该函数。

4、main()的参数

int main(int argc,char *argv[]) = int main(int argc,char **argv)

argc存参数个数,argv存多个参数字符串。

如 ./test 4 a b,argc=4, argv[0] = "./test", argv[1] = "4", argv[2] = "a", argv[3] = "b"。

  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值