C语言编程学习—宏定义的一些使用技巧

96
小辰带你看世界
2018.03.24 22:57 字数 1119

C语言是面向过程的,而C++是面向对象的

C和C++的区别:

C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。

C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。

C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。

今天分享下C语言的宏定义。C语言宏定义看起来简单,只需要 #define 语句即可使用。宏定义的主要作用其实就是文本替换,发生在C语言的预处理过程。宏定义其实还有下面的一些作用。

小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

宏代替常数,消除魔法数字,也有利于后续的阅读和修改。奇异的常数会造成程序员阅读的困难。程序是写个人看的,一定要记住这一点,不然其他程序员看见你写的代码会抓狂。而且用宏代替常数,也利于代码修改,只需修改宏即可。

小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

宏用来消除重复定义。主要用在头文件定义中,防止发生循环包含和重复包含。用法如下:

#ifndef TEST_H

#define TEST_H

//头文件内容

#endif

这样如果已经有 TEST_H 定义了,则不会再重复引用头文件了。

重新定义C语言的类型和函数,如int,memcpy等函数。主要用于多平台移植,提高兼容性。或者重新定义标准库函数,提高安全性和性能。

预定义宏进行调试。向类似__LINE__等,可用于调试,或者记录日志,对定位问题很有帮助。

宏用来条件编译,通过定义不同的宏,来进行不同的编译选项,如debug模式等。

小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

还有一个小技巧,在宏中,##号可用来连接两个字符串,#号可将宏变成字符串。比如

#define name(my) #my

printf(“%s”,name(test));

则输出test;

#define name(my) my##_name

printf(“%s”,name(test));

则输出test_name;

一般记住,宏在预处理过程中要做文本替换,基本就不会出啥问题了。

日记本
Web note ad 1