[問題] 關於#define的問題
C語言程式如下:
#include <stdio.h>
#define INC(z) (++z)
void main(){
int x = 1, y = 5;
printf("%d\n", x+INC(y));
x = 1, y = 5;
printf("%d\n", x+++y);
x = 1, y = 5;
printf("%d\n", x+ ++y);
}
程式執行(CodeBlocks)的結果是:
7
6
7
想請問幾個問題:
1. define不是等同於字串代換嗎?為什麼第一個輸出是7,而第二個輸出是6呢?
2. 自己以為define應該沒有自帶空白的效果,但是第一個輸出和第三個輸出結果相同
在C語言中printf中的空白會造成影響嗎?
請各位指教,謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.113.163.191
推
10/10 17:35, , 1F
10/10 17:35, 1F
推
10/10 17:40, , 2F
10/10 17:40, 2F
→
10/10 17:41, , 3F
10/10 17:41, 3F
推
10/10 17:55, , 4F
10/10 17:55, 4F
→
10/10 17:56, , 5F
10/10 17:56, 5F
→
10/10 17:58, , 6F
10/10 17:58, 6F
→
10/10 17:58, , 7F
10/10 17:58, 7F
→
10/10 19:08, , 8F
10/10 19:08, 8F
→
10/10 19:08, , 9F
10/10 19:08, 9F
推
10/10 19:11, , 10F
10/10 19:11, 10F
→
10/10 19:11, , 11F
10/10 19:11, 11F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
問題
4
11