VS C++ 宏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/youshijian99/article/details/79977848


前##
后##
#

例程

#include <stdio.h>

#define A(x) T_##x		// 连接
#define B(x) x##T		
#define C(x) #x			// 转换为字符串

int main(int argc, char **argv)
{
	int A(d) = 10;
	printf("%d\n",T_d);

	int B(d) = 20;
	printf("%d\n",dT);
	
	printf("%s\n", C(12)); 

	getchar();
	return 0;
}

运行结果
10
20

12

宏的高级用法

#include <stdio.h>

#define testMacro(name) \
	int __cdecl name##_Test(int params) \
{	\
	printf("%d\n", params); \
	name();	\
	return 0;	\
}

int HH()
{
	printf("HH\n");
	return 0;
}

testMacro(HH)

int main(int argc, char **argv)
{
	HH_Test(5);
	getchar();
	return 0;
}
运行结果
5

HH

断言

#include <stdio.h>
#include <windows.h>

#define assert(exp)	\
	if (!(exp))	\
	{	\
		printf("<3>"#exp"****assert: ERROR! %s, line=%d, HALT!\r\n",__FILE__, __LINE__ );	\
		while(0!=1){Sleep(1000);}	\
	}

int main(int argc, char **argv)
{
	assert(0);

	getchar();
	return 0;
}

查看编译时间

#include <Windows.h>  
#include <cstdio>  
  
static HANDLE hShareMem = INVALID_HANDLE_VALUE;
static void * pRawShareAddr = NULL;

int main(int argc, char **argv)  
{  
    printf("build on time : %s %s\n", __DATE__, __TIME__);
    getchar();  
    return 0;  
}  

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页