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;
一般记住,宏在预处理过程中要做文本替换,基本就不会出啥问题了。