美文网首页C语言#语法程序员C语言
C语言编程学习—宏定义的一些使用技巧

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

作者: 小辰带你看世界 | 来源:发表于2018-03-24 22:57 被阅读28次

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;

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

相关文章

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

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程...

  • 10.19

    今天的嵌入式课程我们学习了C语言宏定义技巧,也就是我们常说的宏定义。防止一个头文件被重复包含。重新定义一些类型,防...

  • 21天C语言代码训练营(第十九天)

    宏的基本应用 今天我们要说的一个C语言编程技巧和宏定义有关。宏定义可以帮助我们防止出错,提高代码的可移植性和可读性...

  • C语言中的预处理器(二)

    预定义宏 ANSI C 定义了许多宏。在编程中您可以使用这些宏,但是不能直接修改这些预定义的宏。简而言之,预定义宏...

  • C语言如何使用随机数?

    C语言如何使用随机数? 功能介绍推送一些C语言方面的知识,提供C语言/C++语言资料,讨论和学习C语言/C++编程...

  • Swift 声明宏定义

    在iOS开发中,使用Object-C可以定义一些宏,以方便项目中调用,但是Swift语言中,并不支持宏定义,我们可...

  • iOS之宏定义

    iOS开发小技巧之--WeakSelf宏的进化 宏定义不是C语句,也无须使用分号结束 宏定义并不是变量,它甚至不是...

  • 2018-07-01

    各编程语言变量的定义 python:直接使用,可以不用定义 java: int i需要定义 C语言:与java相同...

  • golang条件编译

    开篇 golang中没有类似C语言中条件编译的写法,比如在C代码中可以使用如下语法做一些条件编译,结合宏定义来使用...

  • SDWebImage源码解读

    整体架构 按照分组方式,可以分为几组 定义通用宏和方法 SDWebImageCompat: 宏定义和C语言的一些工...

网友评论

    本文标题:C语言编程学习—宏定义的一些使用技巧

    本文链接:https://www.haomeiwen.com/subject/bivzqftx.html