1. 程式人生 > 其它 >巨集定義中的分號

巨集定義中的分號

技術標籤:c語言

程式碼

// An highlighted block
#include <stdio.h>
#define swap1(x,y) t = x; x = y; y = t;
#define swap2(x,y) t = x,x = y,y = t;
#define swap3(x,y) t = x; x = y; y = t
#define swap4(x,y) t = x,x = y,y = t
int main()
{
	int x = 1;
	int y = 2;
	int t = 0;
	t = x,x = y,y = t;
	printf("x = %d,y = %d,t = %d\n"
, x,y,t); swap1(x,y) printf("x = %d,y = %d,t = %d\n", x,y,t); swap2(x,y) printf("x = %d,y = %d,t = %d\n", x,y,t); swap3(x,y); printf("x = %d,y = %d,t = %d\n", x,y,t); swap4(x,y); printf("x = %d,y = %d,t = %d\n", x,y,t); return 0; }

執行結果

在這裡插入圖片描述

結論

如果巨集定義最後自己有分號,呼叫時可以不加分號

// An highlighted block
#define swap1(x,y) t = x; x = y; y = t;
// An highlighted block
swap1(x,y)   //不加分號正常執行

一行語句可以執行多個賦值語句,用逗號隔開即可

// An highlighted block
t = x,x = y,y = t;