| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C语言笔记第六天 -> 正文阅读 |
|
[C++知识库]C语言笔记第六天 |
编译步骤预处理:gcc -E hello.c -o hello.i ??????? 头文件展开 ??????? 宏替换(其实如果C只是过度阶段之后C++的话宏真的无关紧要) ??????????????? 定义宏:#define 宏名 宏 ??????????????? 取消宏:#undef 宏 ??????????????? 宏替换作用域为当前文件 ??????? 条件编译 ??????????????? #if #endif ??????? 删除注释 编译:gcc -S hello.i -o hello.s ??????? 将预处理后的文件生成汇编文件,进行语法检查 汇编:gcc -c hello.s -o hello.o ??????? 将汇编文件编译成二进制文件 链接:gcc hello.o -o hello.exe(hello.out) ??????? 将重多二进制文件,库,启动代码生成可以执行文件 宏函数和普通函数因为宏函数本质是宏替换,所以没有调用过程.有几个宏函数,就替换多少次,造成代码区空间浪费.浪费空间节约时间,以空间换时间. 普通函数在代码区只有一份,调用时读取压栈保存信息,调用结束出栈释放信息(大概是这样函数调用实际上很复杂)这步骤需要时间.以时间换空间.
条件编译条件编译这块我用linux来说吧. 这个一般调试的时候会用
?-D 是向命令行中传递宏函数,这个之后在Linux中再说
?结果和上面相反
本来已经要睡着了,被同学一条八卦信息吵醒了,然后想到明天就一个星期了速度是有点慢那就继续吧. 条件编译案例想不到有啥案例,然后跑到B站看人家的案例,写了一下
防止头文件重复对了C语言防止头文件重复包含的 #ifndef #define #endif 其实就是条件编译,未定义执行时执行,定义是跳过.可以自己把头文件拆开来看看逻辑.即使没明白也没关系(这个也是无关紧要的,用的多了就懂了). 这种防止头文件重复包含时语言本身的特性,考虑到代码移植问题时还是需要使用的. #pragma noce 也是防止头文件重复包含,它是编译器行为(有可能一些以前的编译器无法识别) |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 20:02:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |