看板 C_and_CPP 關於我們 聯絡資訊
今天晚上心血來潮玩了一下#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
zlw:define就是把test出現的地方改成你在test後面寫的東西而已吧 07/12 06:36
zlw:就只是一個字串取代,與什麼型別運算沒有關係 07/12 06:36
zlw:還有你的內容有矛盾 07/12 06:37
iamivers0n:你確定黃色到綠色第一行有改嗎XD 07/12 08:01
lairrol:看完zlw大的回答我大致了解在做什麼了!!感謝.. 07/12 14:46
UNARYvvv:整數除以整數 還是整數 07/12 17:56
feasfeasf:第一行原PO意思可能是#define test 7/18 印出 0.0000 07/18 13:00
feasfeasf:7/18 跟 7.0/18, 一個是int運算,一個是float運算 07/18 13:02