[問題] 能不能用macro做到這件事
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
編譯時顯示sum未宣告
我知道是因為sum被展開成sum+1
有沒有辦法讓"sum+1"裡的sum取得之前所定義的值
希望得到的正確結果:
印出1
程式跑出來的錯誤結果:
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Dev-C++
有問題的code: (請善用置底文標色功能)
#define sum 0;
#define sum sum+1;
.
.
.
int main(){
.
.
printf("sum=%d\n",sum);
.
.
}
補充說明:
其實是為了嘗試不用template在編譯期算出1+...+10
差在不能取之前定義的值
#ifndef loop
#define loop 10
#define sum 0
#endif
#define sum (sum+loop)
#define loop loop-1
#if loop>0
#include "1.hpp" // include自己
#endif
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.134.226.149
→
05/15 16:01, , 1F
05/15 16:01, 1F
→
05/15 16:02, , 2F
05/15 16:02, 2F
→
05/15 16:04, , 3F
05/15 16:04, 3F
→
05/15 16:05, , 4F
05/15 16:05, 4F
→
05/15 16:05, , 5F
05/15 16:05, 5F
※ 編輯: loveflames 來自: 140.134.226.149 (05/15 16:16)
→
05/15 16:12, , 6F
05/15 16:12, 6F
→
05/15 16:12, , 7F
05/15 16:12, 7F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):