[問題] define 小疑問

看板C_and_CPP (C/C++)作者 (極藍風)時間16年前 (2009/07/12 04:01), 編輯推噓2(206)
留言8則, 5人參與, 最新討論串1/1
今天晚上心血來潮玩了一下#define 試了一個小東西 #include "stdafx.h" #include "stdlib.h" #define test 18/7 int _tmain(int argc, _TCHAR* argv[]) { printf("%f\n",test); system("pause"); return 0; } 這樣可以正常印出18/7的一串浮點數2.571429 但是黃色那一行改成 #define test 18/7 印出0.000000 #define test 18.0/7 印出2.571429 #define test 18/7.0 印出2.571429 #define test (float)18/7 印出2.571429 我的疑問是#define後面定義的變數的型別是按照變數後面的敘述 來決定變數的型別? -- 態度決定你的高度 你有多高? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.114.110.105

07/12 06:36, , 1F
define就是把test出現的地方改成你在test後面寫的東西而已吧
07/12 06:36, 1F

07/12 06:36, , 2F
就只是一個字串取代,與什麼型別運算沒有關係
07/12 06:36, 2F

07/12 06:37, , 3F
還有你的內容有矛盾
07/12 06:37, 3F

07/12 08:01, , 4F
你確定黃色到綠色第一行有改嗎XD
07/12 08:01, 4F

07/12 14:46, , 5F
看完zlw大的回答我大致了解在做什麼了!!感謝..
07/12 14:46, 5F

07/12 17:56, , 6F
整數除以整數 還是整數
07/12 17:56, 6F

07/18 13:00, , 7F
第一行原PO意思可能是#define test 7/18 印出 0.0000
07/18 13:00, 7F

07/18 13:02, , 8F
7/18 跟 7.0/18, 一個是int運算,一個是float運算
07/18 13:02, 8F
文章代碼(AID): #1AME-UBl (C_and_CPP)
文章代碼(AID): #1AME-UBl (C_and_CPP)