2.巨集定義問題
利用巨集定義計算(2*x + 2*y)*z
//錯誤**
#define perimeter(x,y) 2*x + 2*y
void main()
由於巨集替換本身只是文字替換,上述**變成result = 2*x +2*y*z;
//正確**
#define perimeter(x,y) (2*(x) + 2*(y))
void main()
巨集定義命名與系統庫同名問題
//檔案a.cpp中
#define map _cxx::hash_map
mapmyhashmap
//檔案b.cpp中
#include #include "a.cpp"
mapmymap;
巨集編譯在預編譯階段執行,所以在b.cpp中,**行mapmymap在預編譯時被替換成_cxx::hash_mapmymap,不會使用b.cpp中包含的#include,只需修改a.cpp為smap即可。
//正確**,修改a.cpp中的巨集名字smap
#define smap _cxx::hash_map
mapmyhashmap
多語句巨集定義使用錯誤
//錯誤**
#define exit(info) std::cerr《當data為負數時,列印"data is a negative number!",然後程式退出;當data大於等於0時,程式不會列印。只需用大括號將巨集定義括起來。
#define exit(info) (std::cerr
《從缺陷中學習c c 》摘要 劉浙新登著
while char c getchar eof rpath 使用編譯選項 r指定 ld library path etc ld.so.cache lib和 usr lib 注 so前使用export ld library path char buf 10 char src 10 hello s s...
C 02 訪問許可權
include stdafx.h include iostream.h class test void seti int ai 思考1.function member什麼時候會寫成private?思考2.考慮繼承關係,子類可以訪問父類的private成員嗎?如果不行,應該用哪個訪問控制形式?思考3....
標準C 02標準函式
標準c課程 二 c語言中的標準函式 c語言中提供一組工具,他們叫做標準函式 每個標準函式用來解決乙個常見的問題 不同標準函式名稱不同 可以在程式中編寫函式呼叫語句使用標準函式。例如 printf標準函式可以把程式中的數字列印在終端視窗裡 為了使用這個標準函式需要包含stdio.h的標頭檔案,可以在雙...