解決巨集定義與函式名衝突的問題
std::numeric_limits<std::streamsize>::max()和
std::numeric_limits<std::streamsize>::min()
兩個函式定義相互衝突。
通常的情況是,如果包含了標頭檔案windows.h,那麼編譯器會率先把它當成巨集,從而報錯,
解決的辦法有這麼幾個:
方法一:
用括號把呼叫函式的地方括起來,這個是用的比較多的方法,也是解決的比較好的方法
例如:
象這樣用函式
(std::numeric_limits<std::streamsize>::max)()
方法二:
就是不包含巨集定義的標頭檔案
方法三:
取消掉對巨集的定義
#undef max
相關推薦
解決巨集定義與函式名衝突的問題
畢竟典型的一個問題是<windows.h>裡面的max和min的巨集定義與 std::numeric_limits<std::streamsize>::max()和std::numeric_li
定義的函式名和巨集衝突的問題。
這兩天寫了一個自定義的服務程式,Service->StartService()來啟動我的服務程式,平時執行完好,直到我把這個Service類匯出的時候出現了問題,無法找類的StartService的方法,這是為什麼呢,因為winsvr.h標頭檔案中定了Start
《6.C語言巨集定義與預處理、函式和函式庫》
《6.C語言巨集定義與預處理、函式和函式庫》 第一部分、章節目錄 4.6.1.C語言預處理理論 4.6.2.C語言預處理程式碼實戰 4.6.3.巨集定義1 4.6.4.巨集定義2 4.6.5.函式的本質 4.6.6.函式的基本使用 4.6.7.遞迴函式 4.6.8.函式庫 4.6.9.字
python的關鍵字與引數名衝突的解決方法
在呼叫BeautifulSoup模組中的find的函式時,由於需要指定tag中name的屬性,而與find函式的位置引數產生了衝突。 find函式原型如下: find( name, attrs, recursive, text, **kwargs) 而需要呼叫它的程式碼如下: lt = soup
巨集定義與列舉定義衝突錯誤
我在一個檔案 displaynumber.h 中定義了一個列舉: class CDisplayNumber : public CStatic{ DECLARE_DYNAMIC(CDisplayNumber)public: CDisplayNumber(); virtual
巨集定義與符號常量
在C中,“巨集”分為無引數的巨集和有引數的巨集兩種 無參巨集定義 (1)無參巨集定義的一般格式:#define 識別符號 語言符號 字串 其中:"define"為巨集定義命令;"識別符號"為所定義的巨集名,通常用大寫字母表示,以便於與變數區別;“語言符號字串”可以是常數,表示式,
STM32 晶片系列 巨集定義與啟動檔案選擇說明
其中,ld.s適用於小容量 產品;md.s適用於中等容量產品;hd適用於大容量產品; 1、小容量產品:STM32F10X_LD,USE_STDPERIPH_DRIVER C4/C6 R4/R6 T4/
iOS開發之--巨集定義與const的區別及使用方法
巨集定義的常見用法: 定義一段程式碼,或指定字串抽成巨集。 const(常量): 當有字串常量的時候,蘋果推薦我們使用const,蘋果經常把常用的字串定義成const 巨集定義與const的區別: 編譯時刻:巨集是預編譯(編譯之前處理),const是編譯階段。 編
C語言中巨集定義和函式的取捨
原文連結:http://www.embedu.org/Column/Column177.htm 要寫好C語言,漂亮的巨集定義是非常重要的。巨集定義可以幫助我們防止出錯,提高程式碼的可移植性和可讀性等。 在軟體開發過程中,經常有一些常用或者通用的功能或者程式碼段,這些功能既可以寫成函式,也可以
關於Jquery的noConflict()方法,解決Jquery庫與其他庫衝突問題
以前只聽說過js會起衝突,但從沒遇到過,這下可好,終於趕上了。怎麼辦?這最後一個方法不能刪,可前面做好的我也總不能再重新一個個寫吧。挺糾結的問題!萬幸,在請教一高手後,他給我講了一個方法——noConflict()
python匯入requests庫一直報錯原因總結 (檔名與庫名衝突)
花了好長時間一直在搞這個原始碼:一直報如下錯誤:分析原因:總以為沒有匯入requests庫,一直在網上搜索各種的匯入庫方法(下載第三方的requests庫,用各種命令工具安裝),還是報錯後來找到一個命令pip install requests,說明安裝python3的時候,已經自動勾選安裝了requests庫
巨集定義和函式呼叫的區別
含引數的巨集與函式的區別 ? 巨集替換不佔執行時間,只佔編譯時間;而函式呼叫則佔執行時間(分配單元、保留現場、值傳遞、返回),所以每次執行都要載入所以執行起來比較慢一些。。 ? 定義巨集的時候不要在巨集及其引數之間鍵入空格,因為巨集替換的時候會把你不經意打的空格當作巨集的一部
js中變數名與函式名重名的問題
網上有很多的部落格有談到這個重名的問題,但是我覺得將不算是很全面,至少我看了還是不懂下面這道題到底是怎麼回事。那在講解這個問題的時候,我們先來看看下面這道題,一道面試題(南山西麗xx研究院): var a = 1; function b(){ a = 10;
基於Linux下的GCC編譯器的內部預巨集定義與__attribute__屬性
***************************************************************************************************************************** 作者:EasyWav
C語言-函式指標與函式名的區別
記得大學時老師曾說函式的函式名是函式的入口的指標,之前看block通過clang編譯生成的C程式碼發現很多函式指標,於是想了解函式指標與函式名有什麼區別?以及函式指標一般都有些什麼作用。函式指標與函式名的區別首先先定義一函式以及一個指向蓋函式的函式指標,並分別對他們進行呼叫。
當結構體遇上巨集定義,以及函式指標的高階寫法(結構體中能用巨集定義一個函式?)
一、結構體中可以定義一般的巨集定義 如: struct aaa { #define STATUS_1 100 #define STATUS_2 200 #define STATUS_3 300 ........ }; 首先
巨集定義與條件編譯的用處
#define 定義巨集 #undef 取消已定義的巨集 巨集定義常量與命令可以避免幻數 在巨集定義命名時候應該儘量清楚表明其用途。 函式型巨集定義的有點:儘管其和真正的函式相比有很多缺點,但只要小心使用還是會顯著提高程式碼的執行效率
Python的列表等變數的宣告必須要在函式定義與函式呼叫之前
原始碼 —–這個程式碼作用是呼叫Linux應用終端操作來實現計算,並把計算結果取出來,組成相似矩陣,有五組值也就是有五組相似矩陣,這個是我做蛋白質結構預測用到的,自己寫的,分享出來給大家,如有疑惑,歡迎評論區交流。 # 此程式碼主要為說明問題,後面我會貼上完
巨集定義與預定義
上學的時候就沒搞清楚這兩個東東的關係,原本以為是多麼難得事情,今天仔細瞧瞧就那麼回事。(浮躁的大學哦.....) 巨集定義: 其作用就是“換其名曰”,給程式中的一段特殊的程式碼--函式,資料取了個簡單明瞭的名字。不過有一點這傢伙的作用範圍是全域性的。即使它是在某一個函式塊中定
c學習筆記--3關鍵字 巨集與函式定義
好久之前的了,學習c語言的筆記。 依舊是老套路,從基礎的變數型別,到函式定義一步步學起 #include <stdio.h> #include <string.h> //函式定義 與關鍵字 //define用於巨集定義 程式中不能更