突发奇想-取缔宏定义,用另外一种语言来做C++的部分外层封装

突发奇想:
用一种语言 来编写C++外挂,可以替代宏定义,
可以这么做,在C++里面加入特定标签,比如<javascript></javascript>
中间的代码可以翻译成C++代码,再用C++编译器来编译。

困扰:

1.C++宏必须要反斜杠,再需要大量重复逻辑代码的情况下,需要宏来减少代码量,达到高效工作的目的;

2.如果C++中有大量宏代码,解开宏代码 查看真是代码变得有点费劲,如果可以直接还原代码就好了;

最终目的:减少C++的宏定义造成的困扰,减少大量重复代码,可以实现看起来是callback 的代码,其实是类似Define后,还原到c++文件里面的代码。

可以采用lua or javascript or go。但是又不必太复杂。

作用 有 协助 编译器 进行高效工作的功效。

时间: 2024-10-25 20:29:53

突发奇想-取缔宏定义,用另外一种语言来做C++的部分外层封装的相关文章

[转载]c语言宏定义

一. #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利. 1 #define命令剖析 1.1   #define的概念 #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为

【学习笔记】【C语言】宏定义

1.宏定义可以分为2种:不带参数的宏定义 带参数的宏定义 2.定义 一般形式#define 宏名 字符串比如  #define ABC 10右边的字符串也可以省略,比如#define ABC 3.作用 它的作用是在编译预处理时,将源程序中所有"宏名"替换成右边的"字符串",常用来定义常量.接下来写个程序根据圆的半径计算周长 4.例子 在第4行定义了一个叫PI的宏,在编译预处理之后,第8行中的2 * PI *radius就会变成2 * 3.14 * radius. 1

[转]C++宏定义详解

一.#define的基本用法     #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利. 1 #define命令剖析 1.1   #define的概念     #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符

C++宏定义详解

一.#define的基本用法     #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利. 1 #define命令剖析 1.1   #define的概念     #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符

[转]c语言宏定义#define的理解与资料整理

原文地址:http://www.cnblogs.com/haore147/p/3646934.html 1. 利用define来定义 数值宏常量 #define 宏定义是个演技非常高超的替身演员,但也会经常耍大牌的,所以我们用它要慎之又慎.它可以出现在代码的任何地方,从本行宏定义开始,以后的代码就就都认识这个宏了:也可以把任何东西定义成宏.因为编译器会在预编译的时候用真身替换替身,而在我们的代码里面却又用常常用替身来帮忙. 看例子: 1 #define PI 3.141592654 在此后的代码

C语言宏定义#define用法

#define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利.1 #define命令剖析1.1   #define的概念#define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本.

预处理指令--宏定义

预处理指令简介 •C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源程序(这个过程称为编译预处理),之后再进行通常的编译 •为了区分预处理指令和一般的C语句,所有预处理指令都以符号“#”开头,并且结尾不用分号 •预处理指令可以出现在程序的任何位置,它的作用范围是从它出现的位置到文件尾.习惯上我们尽可能将预处理指令写在源程序开头,这种情况下,它的作用范围就是整个源程序文件 •C语言提供的预处理指令主要有:宏定义.文件包含.条

一些编程题(有些是突发奇想的,有些是常见的)

1.Canvas中关于等分圆,等比圆:封装了一个函数,根据参数的比值进行等分圆(突发奇想的):你可以传入任何比值,如Dr(1,1,2,4,8)或Dr(5,8)或(3,5,8): 比如 Dr(4,3,4,5,2); 2.自己定义一个数组去重的方法,让我的每一个数组都可以使用它(突发奇想的) 3.用js随机随机选取10-100之间的10个数字,存入一个数组-,并排序 方法1是其他人做法 方法2是我自己做的,可以对比一下 4.用一个function把字符串转换为驼峰命名法- 5.求一个字符串的字节长度

宏定义中的#,##,...,do{}while(0),__VA_ARGS__

宏定义中的#,## 1.在一个预处理器宏中的参数前面使用一个#,预处理器会把这个参数转换为一个字符数组 #define syslog(a) fprintf(stderr,"Warning: " #a"\n"); 2.简单的说,"## "是一种分隔连接方式,它的作用是先分隔,然后进行强制连接 举列 -- 试比较下述几个宏定义的区别 #define A1(name, type)  type name_##type##_type 或 #define A