乙個C 巨集定義與列舉定義重複的編譯錯誤

2022-03-06 08:04:43 字數 425 閱讀 9412

c++的開發效率低是眾所周知的,原因比如有:

另外乙個恐怕是不少編譯錯誤讓人摸不著頭腦,今天碰到乙個,舉個例子:

1 #include 2

3enum

loglevel ; 10

1112

intmain() 13

16

編譯錯誤為:

$ g++ -ddebug test.cpp

test.

cpp:7:5: error: expected identifier before numeric constant

這裡的錯誤,其實是說列舉debug不合法,因為已經有個巨集定義也叫debug了。

如果是乙個比較普通的enum名字,剛好在某處不怎麼可見的地方被巨集定義了,看到這個錯誤那是相當不知道到底**錯了。。。

c 用巨集定義乙個函式

要點 變數都用括號括起來,防止出錯,結尾不需要 在實際程式設計中,不推薦把複雜的函式使用巨集,不容易除錯。多行用 要寫好c語言,漂亮的巨集定義是非常重要的。巨集定義可以幫助我們防止出錯,提高 的可移植性和可讀性等。在軟體開發過程中,經常有一些常用或者通用的功能或者 段,這些功能既可以寫成函式,也可以...

乙個巨集定義的用法

巨集定義就是簡單的替換,之前沒見過帶符號的替換,看到這個有點懵了,記錄如下。這裡用 n,代替 fninfo n,l 用的很巧妙。define fninfo n,l n,measvalue measfntbl 以下為names.h中內容 fninfo dominmaxmidhilo,min fninf...

乙個複雜巨集定義的解讀

我們不提倡在寫 的時候出現太多複雜的巨集定義,巨集定義雖然可以簡化 量,但是讀起來非常費勁!下面來看乙個例子 把乙個buff中的資料拷貝到乙個指定的陣列中。由於種種原因,我們用巨集定義來實現這些負責的轉化。如下 include stdafx.h include string.h typedef un...