几个常用道的macro
几个常用道的macro
1、macro
(1)#error msg 指令使編譯器停止執行並打印一條語句,
(2)printf("%d,%s",_LINE_,_FILE_)打印當前行號和文件名
(3)#pragma arg 設置了編譯器所使用的條件.
(4)#str 將字符串放入被引號括起來的字符串中,如:
#define pr(s) puts(#s)
pr(hello world);->puts("hello world");
(5)將兩段文字拼接在一起,如:
#define call(verb,adj,do) verb##_##adj(do) call(shrink, all, trees);->shrink_all(trees); #define SIGNAL(x) "SIGNAL:" #x SIGNAL(finishedParsing())
2、給結構賦初值
struct AAA
{
AAA():a(){}
int a;
int b;
};
3、使用macro 批定義變量
#define STR_EACH_DECLARE(macro)\
macro(age)\
macro(name)
#define STR_DECLARE(name) char name ## Str;
STR_EACH_DECLARE(STR_DECLARE)
void main()
{
;
nameStr='a';
ageStr='b';
}
4、定位參數
5、指針和常量
const type * type const * type * const
6、友元函數和友元類
7、拷貝構造函數和賦值語句
8、#pragma once 用字符串调用同名的函数
str.def:
my_Macro(func1),
my_Macro(func2)
str.h:
#pragma once
void func1();
void func2();
#define my_Macro(a) a
typedef void (*func)();
func fArray[]=
{
#include "str.def"
};
#undef my_Macro
#define my_Macro(a) #a
char* str[]=
{
#include "str.def"
};
str.cpp:
#include "str.h"
#include "string.h"
void func1(){}
void func2(){}
void main()
{
char call[]="func1";
]);
; i<len; i++)
{
)
{
fArray[i]();
break;
}
}
}
几个常用道的macro的更多相关文章
- flasCC技术点记录
[待测试特性] 一.C接口导出相关 1.重载函数. 2.虚函数. 3.template相关 二.内存相关 1.as直接往c分配的内存写数据. 2.c直接往as对象写数据. 三.C访问AS 1.访问as ...
- FreeMarker三宗罪之优缺点
FreeMarker是Quake Wang推荐我使用的.刚学FreeMarker的时候,发现freemarker真的很棒!简单易用,功能强大.但是用它做了几个项目以后开始不爽了. 一宗罪:freema ...
- 程序员必须知道的HTML常用代码有哪些?
HTML即超文本标记语言,是目前应用最为广泛的语言之一,是组成一个网页的主要语言.在现今这个HTML5华丽丽地占领了整个互联网的时候,如果想要通过网页抓住浏览者的眼球光靠因循守旧是不行的,程序猿们需要 ...
- 你应该知道的CSS2.0中最常用的18条技巧
一.使用css缩写 使用缩写可以帮助减少你CSS文件的大小,更加容易阅读. 具体内容请浏览:CSS常用缩写语法 二.明确定义单位,除非值为0. 忘记定义尺寸的单位是CSS新手普遍的错误.在HTML中 ...
- 关于宏MACRO,我们需要知道的事
一.先从最宏观的角度来了解宏,这里的宏观角度是指程序的运行流程: 1,提交代码后,SAS先把代码读取储存到堆栈中: 2,用文本扫描插件来扫描堆栈中的代码,从上到下,从左到右: 3,扫描到一个分号,则编 ...
- 常用Macro
[enable_if] SFINAE是英文Substitution failure is not an error的缩写. 这句话什么意思呢?当调用模板函数时编译器会根据传入参数推导最合适的模板函数, ...
- 迟早要知道的JS系列之常用数组方法
常用数组方法 一.不会改变原始数组的方法: 即访问方法,下面的这些方法绝对不会改变调用它们的对象的值,只会返回一个新的数组或者返回一个其它的期望值. 1. concat() ** 语法:** Java ...
- 前端er必须知道的Git地址及常用工具地址
商城篇(找工作必练) 开源商城 推荐指数:5星,掌握了它,可以说,今后工作中的各种需求都不是问题,工作1~2年的也可以学习其中的思路(建议收藏). 这是一个集小程序/公众号/app为一体的商城系统,包 ...
- VIM-不常用或不知道的技巧
cc 清除一行 并在本行编辑, 同理 cw :32,65d 多行删除 g/pattern/d 删除包含特定字符的行 v/pattern/d 删除不包含指定字符的行 等同于 g!/pattern/d y ...
随机推荐
- Git学习05 --分支管理02
1.冲突 产生冲突后,查看readme.txt 可以看到冲突内容 <<<<<<< ======= >>>>>>> ...
- BZOJ 1064 假面舞会
http://www.lydsy.com/JudgeOnline/problem.php?id=1064 思路:第一眼看的时候以为是差分约束,但是是做不了的,不过能保证的就是这题绝对是图论题...(废 ...
- WPF制作的一个小功能,智能提示(IntelliSense)
原文http://www.cnblogs.com/scheshan/archive/2012/06/30/2570867.html 最近WPF项目中遇到一个需求,需要给一个RichTextBox添加智 ...
- python定时器爬取豆瓣音乐Top榜歌名
python定时器爬取豆瓣音乐Top榜歌名 作者:vpoet mail:vpoet_sir@163.com 注:这些小demo都是前段时间为了学python写的,现在贴出来纯粹是为了和大家分享一下 # ...
- 【POJ 1330 Nearest Common Ancestors】LCA问题 Tarjan算法
题目链接:http://poj.org/problem?id=1330 题意:给定一个n个节点的有根树,以及树中的两个节点u,v,求u,v的最近公共祖先. 数据范围:n [2, 10000] 思路:从 ...
- curl 浏览器模拟请求实战
1,curl 常用选项
- 用户 'IIS APPPOOL\DefaultAppPool'登录失败
今天发布网站遇到这个问题.问题直接说明iis 应用程序池. 后来百度发现是应用程序池 进程模型中的标识项设置问题,这个我用的是本地数据库所以是localsystem.在此小弟谢谢这位 http:/ ...
- Carmack在QUAKE3中使用的计算平方根的函数
// // Carmack在QUAKE3中使用的计算平方根的函数 // float CarmSqrt(float x){ union{ int intPart; float floatPart; } ...
- css权重计算
第一等:代表内联样式,如: style=””,权值为1000. 第二等:代表ID选择器,如:#content,权值为100. 第三等:代表类,伪类和属性选择器,如.content,权值为1 ...
- C#钩子应用实例
C#钩子应用实例一.写在最前 本文的内容只想以最通俗的语言说明钩子的使用方法,具体到钩子的详细介绍可以参照下面的网址: http://www.microsoft.com/china/community ...