本人大一学生,以下文章作为学习笔记用于加深记忆和复习,并分享给其他需要的人.
内容不含标准概念,更容易理解.
内容面向c语言初学者
一. 预处理
一. 什么是预处理
代码执行之前的事情,命令以#开头
二. 常见的预处理
头文件
三. #define
是C语言的宏定义,本质是替换,会在预处理阶段对程序中所有出现的”宏名”的地方进行替换
一 宏替换
1.定义
#define 宏名 内容
#define PI 3.14159 //定义PI为3.14159 相当于给常量起名
#define NUM 3+1
int main(){
int n = NUM * NUM; //拆解 : 3 + 1 * 3 + 1
printf("n = %d\n", n); //结果 : 7
return 0;
}
二 带参宏
#define 宏名(形参列表) 内容
#define ADD(a,b) a+b
#include <stdio.h>
// #define 宏名(形参列表) 内容
#define ADD(a,b) a+b
#define ADD1(a,b) (a+b)
// 注意:没有参数类型 没有返回值 本质:替换
int main()
{
// 拆解: n = a + b ;
int n = ADD(1,2); // 拆解: 1 + 2
printf("n = %d\n", n); // 结果: 3
n = ADD(1, ADD(5, 6))*ADD(3, 4); // 拆解: 1 + 5 + 6 * 3 + 4
printf("n = %d\n", n); // 结果: 28
n = ADD1(1, ADD1(5, 6))*ADD1(3, 4); // 拆解: ( 1 + (5 + 6) ) * (3 + 4)
printf("n = %d\n", n); // 结果: 84
double d = ADD(1.223, 2.456); // 拆解: 1.223 + 2.456
printf("d = %lf\n", d); // 结果: 3.679000
return 0;
}
四 预编译条件
一 #ifdef 宏名
语法:
#ifdef 宏名
代码块;
#endif
规则:
根据宏名是否定义,如果定义了,就会执行代码块直到endif,否则不执行代码块
举例:
#include <stdio.h>
#define def_1 1; // 宏定义 def_1
int main()
{
#ifdef AAA // 判断 def_1 宏名以被定义 执行代码块内容
printf("宏名以被定义\n");
#endif // AAA // 结束宏判断
return 0;
}
#include<stdio.h>
#define def_1 1 // 宏定义 def_1
int main() {
#ifdef def_1 // 判断是否定义宏名 def_1
printf("以定义宏名 def_1"); // 结果
#else
printf("未定义宏名 def_1");
#endif
return 0;
}
二 #ifndef 宏名
语法
#ifndef 宏名
代码块;
#else
代码块;
#endif
规则: ( 与 ifdef 类似且相反 )
根据宏名是否定义,如果没有定义,就会执行相对代码直到endif,否则不执行代码块
举例:
#include<stdio.h>
#define def_1 1 // 宏定义 def_1
int main() {
#ifndef def_1 // 判断是否定义宏名 def_1
printf("未定义宏名 def_1");
#else
printf("以定义宏名 def_1"); // 结果
#endif
return 0;
}
常用事件:
令某代码永远只执行一次:
#ifndef def_1
#define def_1
//代码块
#endif
三 #if 表达式
语法:
#if(表达式)
// 代码块1;
#else
// 代码块2;
#endif
规则:
如果表达式为真 , 执行代码块 1 ,否则执行代码块 2.
举例:
#include <stdio.h>
int main() {
#if(1)
printf("yes\n");
#else
printf("no\n");
#endif
return 0;
}
二 文件操作
一 什么是文件
ps:除了文件夹,都是文件
文件的后缀名: .docx .txt .c .cpp .exe .bat .csv …
二 文件名
名字.后缀
三 文件路径
1 相对路径: 从当前项目开始到目标文件
2 绝对路径: 从根目录开始到目标文件
以:
路径 + 名字.后缀
来确定文件
四 操作文件 ( 正文开始 )
更多内容参考:https://www.runoob.com/cprogramming/c-file-io.html
1、定义文件指针 FILE*file;
2、open(“路径”,“打开方式”)打开文件
3、文件的打开方式
“r”(只读) 为了输入数据,打开一个已存在的文本文件 出错
“w”(只写) 为了输出数据,打开一个文本文件 新建文件
“a”(追加) 向文本文件尾部添加数据 出错
“rb”(只读) 为了输入数据,打开一个已存在的二
版权声明:本文为zhuiyizhifengfu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。