
重学c语言
文章平均质量分 74
c语言涉及的琐碎的和基础的知识点。按专栏顺序看
阿鼎不是阿顶
朝气满满(●'◡'●)
展开
-
第一个代码
入门第一个代码详解代码#include代码这里简述一个简单代码的每一行的作用。本段程序运行后会在运行框输出 我免费了 的字样#include<stdio.h>int main(void) { printf("我免费了"); getchar(); return 0;}#include<stdio.h>的作用#include是预处理命令,所谓预处理命令就是在程序进行预处理阶段时将多个代码文件整合到一起或是使用宏压缩代码时执行的命令。此处是将文件名为stdio,文原创 2021-06-08 14:19:02 · 243 阅读 · 0 评论 -
main函数写法总结
main函数的写法大全1. main() 【省略了main()前的int返回值默认为int】2. int main(void) 【最常见之一,调用时不可传参,不能获取命令行参数】3. void main() 【无返回值,函数的返回值最终会作为程序的退出状态。一旦用void声明,在程序退出后,便无法获取其退...原创 2020-02-01 11:25:45 · 1539 阅读 · 0 评论 -
一文说尽函数【在补充】
一文说尽函数函数模板及意义函数意义函数声明模板函数定义模板什么时候该声明函数,什么时候可以不用声明函数形式参数与实际参数函数声明与定义区别函数的调用调用模板递归函数模板及意义函数意义函数是用于定义代码功能块的,若是有一段代码改变相应参数后会在整个程序中重复使用,但是在使用时进行不断重复书写十分耗费时间,可以考虑定义函数,使用函数解决。函数声明模板函数返回值类型 函数名称(形式参数列表) ;函数定义模板函数返回值类型 函数名称(形式参数列表) { 功能代码}egint ma原创 2021-06-08 17:30:10 · 144 阅读 · 0 评论 -
续行符
续行符“\”作用将一个预处理写成多行时要用到续行符。【根据定义一条预处理指令只能由一个逻辑代码行组成】#define max(x,a,b) if(a>b)x=a;else x=b;如上面这行代码,若宏定义一个宏函数时,可以一行写,但要想多行写以此增加可读性。便可以用续行符实现。#define max(x,a,b)\if(a>b)\ x=a;\else\ x=b;...原创 2020-02-01 11:17:47 · 1381 阅读 · 0 评论 -
宏定义
#define p1 p2,预处理命令的一种,将p2所代表的字符串不做任何处理地代替p1。一般形式: #define 宏名 字符串#表示预处理,所有预处理都是由#开头。宏名命名规则参照标识符命名规则。预处理操作是在编译之前,所以不会有任何语法纠错,检查等操作。宏定义必须写在函数外,作用域为宏函数定义的该行起至源程序结束,或者可以用#undef来结束宏定义作用域。eg:#...原创 2020-02-03 14:28:39 · 200 阅读 · 0 评论 -
宏函数
形式:#define 宏名(参数列表) 字符串如此宏便可以传入实数灵活应用。在进行字符串替换后,会进行实参替换。由于仍然是宏定义,所以实参替换仍是在预处理阶段进行,不会进行任何加工,判断,检查。宏名和参数列表之间不可有空格,参数列表中可以有。注意宏函数易产生歧义,所以尽量应用括号;eg:#define p1(a) a*a #define p2(a) ((a)*(...原创 2020-02-03 11:39:40 · 125 阅读 · 0 评论 -
p-计数法
c99里的16进制浮点数计数法。非c99不可用。数以0x开头,后面紧跟16进制小数eg:12.3,1b.e3等等(e是14,b是11)12.3=1乘16的1次方+2乘16进制的0次方+3乘16进制的-1次方。后跟p再跟以2为底的阶码。eg:p5意味着乘2的5次方;所以0x12.3p5=(1*16^1+2*16^0+3*16^(-1))*(2^5);...原创 2020-02-01 11:14:26 · 4439 阅读 · 0 评论 -
c文件编译过程
c文件编译过程总过程预处理器作用中间代码最普遍形式链接器作用计算机只可看懂机器语言,但是c是高级语言所以需要将高级语言转化为机器语言。而编译器与汇编器就是做这个工作的总过程c源文件【.c】=预处理器=> 预处理过的源文件 =编译器编译=> 中间代码 =链接器链接=> 中间代码与其他代码【包括预编译的库代码】合并 => 可执行文件预处理器作用一个项目可能有很多个c源文件,预处理器就是将多个c源文件整合在一起。若文件中含有宏,也会将宏转换为源代码中间代码原创 2021-06-08 13:10:42 · 211 阅读 · 0 评论