switch 和 #define #undef 结合使用,以达到代码简洁的效果(省略很多case)

适用情况:对于相同操作的代码块,使用这样的定义,会使得函数整洁。
不只是适用于switch,也适用于if 、else中

#include <stdio.h>			
void testFun(int ID)
{
	switch(ID)
	{
	   #define TEST(ID) case ID: printf("ID:%d\n", ID); break
		//下面这两个TEST的使用,也可以使用.h头文件去定义,只需要包含头文件即可,例如 #include "testDef.h"	
		TEST(1);//case 1
		TEST(2);//case 2
		#include "testDef.h"
		//预编译结束后(字符串复制完成),就把TEST(ID)宏定义释放
	   #undef TEST
	   
		default:
		 printf("default\n");
		 break;
	}
}
int main()
{
	testFun(0);
	testFun(1);
	testFun(2);
	testFun(3);
	testFun(4);
	
	printf("main\n");
   return 0;
}

testDef.h

TEST(3);//case 3
TEST(4);//case 4

运行结果:

default
ID:1
ID:2
ID:3
ID:4
main

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐