06 2019 档案
摘要:使用条件宏进行条件编译 譬如,对于同一份代码,我想编译出两个不同的版本,在其中一个版本中去掉某一部分功能, 这时可以通过条件宏判断是否编译,例: 如果不使用条件宏进行控制,想编译两个不同版本的程序,就需要保存两份源代码。 条件编译的语法和if else语法类似,必须以#endif结尾例如: #if
阅读全文
摘要:使用声明的优先级规则解读声明 解读一个C语言声明,首先要找到声明中的标识符,然后按照优先级次序依次读取 优先级从高到低一次是: 声明中被括号括起来的部分 后缀操作符:()表示这是一个函数,[]表示这是一个数组 前缀操作符:*表示这是一个指针 const关键字后紧跟着类型描述符则说明该const关键字
阅读全文
摘要:C语言指针 C语言指针 1.指针与内存地址的区别: 指针是带有解释方式的内存地址,它不但指出了数据存放在何处,还指出了这个内存 地址存放的是什么类型的数据,而内存地址仅仅是个地址,至于数据是什么类型,数据 有多大,并没有解释。 2.指针访问和数组下标访问谁快谁慢: 使用指针访间接访问的程序运行速度要
阅读全文
摘要:C语言结构体 结构体的定义 结构体的定义要使用struct关键字,并以";"结尾。 下面找个微软定义的结构体: typedef struct _FILETIME { DWORD dwLowDateTime; DWORD dwHighDateTime; } FILETIME, *PFILETIME,
阅读全文
摘要:变量类型以及作用域和生命周期 变量的作用域 变量的作用域就该变量可以被访问的区间,变量的作用域可以分为以下四种: 进程作用域(全局):在当前进程的任何一个位置都可以访问 函数作用域:当流程转移到函数后,在其开始和结束的花括号内可访问 块作用域:最常见的就是if(...){...},while(..)
阅读全文
摘要:C语言函数调用详细过程 函数调用是步骤如下: 1. 按照调用约定传参 调用约定是调用方(Caller)和被调方(Callee)之间按相关标准 对函数的某些行为做出是商议,其中包括下面内容: 传参顺序:是从左往右传还是从右往左 传参方式:是用寄存器传还是使用内存传 平栈方式:是调用方平栈还是被调方平栈
阅读全文
摘要:C语言数组 1. 数组的定义 数组是用来存放数据类型相同且逻辑意义相同的数据 2. 数组的大小 数组的大小不能是变量,必须是常量或者常量表达式,常量表达式由编译器编译时自动求值。 也可以不指定数组大小,但必须对数组进行初始化,编译器在编译时会根据初始化列表中元 素的个数计算数组大小,例如: 3. 数
阅读全文

浙公网安备 33010602011771号