1. 程式人生 > >帶引數的巨集定義應該怎麼寫,引數不能加括號

帶引數的巨集定義應該怎麼寫,引數不能加括號

2013-09-19 20:48:21

如下,巨集定義帶引數時,巨集名中引數不能加括號:

1 //對於帶引數的巨集定義,引數不能加括號,提示'(' : unexpected in macro formal parameter list
2 //#define MAX((a),(b))  (  (long)((a) - (b)) & (0x1 << (8*sizeof(long) - 1) ) ? (b) : (a) )
3 
4 #define MAX(a,b)  (  (long)((a) - (b)) & (0x1 << (8*sizeof(long) - 1) ) ? (b) : (a) )

相關推薦

引數巨集定義應該怎麼引數不能括號

2013-09-19 20:48:21 如下,巨集定義帶引數時,巨集名中引數不能加括號: 1 //對於帶引數的巨集定義,引數不能加括號,提示'(' : unexpected in macro formal parameter list 2 //#define MAX((a),(b)) ( (lo

C語言引數巨集定義

轉自:http://c.biancheng.net/cpp/html/66.html C語言允許巨集帶有引數。在巨集定義中的引數稱為形式引數,在巨集呼叫中的引數稱為實際引數,這點和函式有些類似。 對帶引數的巨集,在呼叫中,不僅要巨集展開,而且要用實參去代換形參。 帶參巨集定義的一般形式為:

類:物件的定義引數括號

class Test { public: Test(int){} Test(){} void fun(){} }; int main() { Test a();

怎麼讓VC6.0支援可變引數巨集定義

用不著過載()這樣就行:#include <stdarg.h> //包含va_list#include <stdio.h> //包含vsprintf()#include <string.h>#define MyPrtLog CPrtLogF

巨集定義中的特殊引數(#、##、...和__VA_ARGS__) 【轉】

轉自:http://blog.csdn.net/cqupt_chen/article/details/8055215 最近在android的某個程式碼的標頭檔案中發現很多__VA_ARGS__,google一下.還是比較有用.附帶其它巨集定義引數,一起記錄之. 1.  

define巨集定義中的###@#及\符號

一、# 名稱:字串化操作符 其作:將巨集定義中的傳入引數名轉換成用一對雙引號括起來引數名字串。 使用條件:只能用於有傳入引數的巨集定義中,且必須置於巨集定義體中的引數名前 舉例: #define example1(instr) #instr string str=

GCC編譯時增加巨集定義-D識別符號相當於巨集定義#define 識別符號

GCC編譯時增加巨集定義-D<識別符號>,相當於#define <識別符號>,可以在遇到條件編譯時執行。 #ifdef <識別符號> //條件編譯內容 #

c/c++:提取可變引數巨集__VA_ARGS__中偶數位置引數

考慮一個可變引數巨集__VA_ARGS__中奇數位代表引數型別,偶數位代表引數名,想要提取__VA_ARGS__中所有的偶數位的引數名,該怎麼實現呢? 利用上一篇部落格《c/c++:計算可變引數巨集 __VA_ARGS__ 的引數個數》的成果可以獲取__VA_

unity自定義巨集定義以及常用自巨集定義

如下是系統有的巨集, //如果你的平臺已經被你switch platform 你的那個平臺過後,對應的輸出列印是彩色的,否則是灰色的 #if UNITY_IPHONE         Debug.Log("UNITY_IPHONE"); #elif UNITY_ANDROI

【C基礎】#define巨集定義中的###@#\ 這些符號的神奇用法

C/C++ 巨集命令的神奇用法。 先看下面三條語句: #define Conn(x,y) x##y #define ToChar(x) #@x #define ToString(x) #x 1. ## 連線操作符 ##表示連線(token pa

linux 定義變量 變量值

ech 輸出變量 path bin 定義 添加 echo 增加 linux 1.設置值$name=test2. 輸出變量的值 echo $echo $name3. 增加變量內容PATH=$PATH:/home/bin/testPATH="$PATH":/home/bin/

定義函式時後面const意義

 const物件只能呼叫const成員函式。  const物件的值不能被修改,在const成員函式中修改const物件資料成員的值是語法錯誤  在const函式中呼叫非const成員函式是語法錯誤 任何不會修改資料成員的函式都應該宣告為const型別。如果在編寫const

【演算法】卡特蘭數問題(BST排列個數矩陣乘法算數括號排隊等)

卡特蘭數當年大二時候就知道了其在行走路線問題上面的應用,後來發現其還有更多的應用場景,而且最近做LeetCode也碰見了不少這樣的問題,特此總結一番。 LeetCode上跟卡特蘭數相關的問題有如下四道: 96. Unique Binary Searc

c++ 引數巨集定義實現反射機制

lua 這種指令碼語言用久了,總覺得反射機制就應該理所當然的嵌入在語言特性裡。 比如希望根據自己傳的型別名變數,動態去 new 一些例項。在 lua ,js 裡做起來就非常簡單,然而在 c++裡面做起來,就需要稍微費些周折。 好在 c++ 巨集定義 支援傳入引數

JMeter模擬請求傳送上自定義Header引數Cookie

上篇安裝好了JMeter,接下來看下使用方面,由於用的還不深入,這邊介紹下基本使用。JMeter中,左側瀏覽器,我們可以新增各種配置。根節點表示這次的測試計劃,儲存下來是個單獨的jmx檔案。 具體流

程式除錯資訊的輸出__FILE__,__LINE__不定引數巨集定義

前言: 我們在寫程式的時候,總是或多或少會加入一些printf之類的語句用於輸出除錯資訊,但是printf語句有個很不方便的地方就是當我們需要釋出程式的時候要一條一條的把這些語句刪除,而一旦需要再次除錯的時候,這些語句又不得不一條條的加上,這給我們帶來了很大的不便,

第十二週OJ——定義引數巨集完成程式——將度秒轉化為弧度

 問題描述:定義帶引數巨集完成度,分,秒至弧度的轉化 檔名稱:the_twelfth_week_OJ2970 作者:何知令 發表時間:2016年11月21日 輸入:度,分,秒 輸出:該度數對應的弧

iOS 如何建立可以引數巨集定義

首先,我們先來建立一個巨集定義,如下 #define LABEL(x,y,w,h)        [[UILabel alloc]initWithFrame:CGRectMake(x, y, w

如何通過 讀取配置引數 而不是 預編譯 巨集定義方式 來決定是否執行printf函式

在一個專案中,本來開始決定通過巨集定義方式來決定是否進行 printf 列印除錯資訊的,但後面考慮到使用配置引數的方式應該更好,因為通過巨集定義方式,還需要再編譯一遍程式才能進行顯示,而通過讀取配置引數方式,只需要在配置檔案中更改配置項即可,這樣更符合實際需要。  大致思路:先將需要列

【qt】訊號使用自定義的結構作為引數傳遞

錯誤   解決辦法: 方法1:註冊改向量 1、註冊位置:在第一次使用此類連結跨執行緒的signal/slot之前,一般在當前類的建構函式中進行註冊; 2、註冊方法:在當前類的頂部包含:#include <QMetaType>,建構函式中加入程