1. 程式人生 > >gcc的-D和-U引數:巨集的設定與取消

gcc的-D和-U引數:巨集的設定與取消

gcc的-D引數:在gcc命令中定義巨集,比如我有如下的程式碼:

/* hello.c */
#include <stdio.h>
#ifdef YES
char* str = "Yes, this is a macro.";
#else
char* str = "No, there is no macro.";
#endif

int main()
{
    printf("%s\n", str);
    
    return 0;
}   

使用-D傳入巨集YES來進行編譯:

[email protected] test # gcc -DYES -o helloyes hello.c

[email protected] test # ./helloyes

Yes, this is a macro.

而不傳入巨集則是這樣的:

[email protected] test # gcc -o hellono hello.c

[email protected] test # ./hellono

No, there is no macro.

gcc還有與-D對應的另一個引數-U用於取消巨集,比如:

[email protected] test # gcc -DYES -UYES -o helloyesno hello.c

[email protected] test # ./helloyesno

No, there is no macro.

相關推薦

gcc的-D-U引數巨集設定取消

gcc的-D引數:在gcc命令中定義巨集,比如我有如下的程式碼:/* hello.c */ #include <stdio.h> #ifdef YES char* str = "Yes, this is a macro."; #else char* str =

Makefile中用巨集定義進行條件編譯(gcc -D)/在Makefile中進行巨集定義-D

在原始碼裡面如果這樣是定義的: #ifdef   MACRONAME //可選程式碼 #endif 那在makefile裡面 gcc   -D   MACRONAME=MACRODEF 或者 gcc   -D   MACRONAME  這樣就定義了預處理巨集,編譯的時候可選程式碼就會被編譯進去了。 對於G

gcc -D選項 編譯時新增巨集定義

程式例項: #include <stdio.h> #include <stdlib.h> int main(int argc, char* argv[]) { #ifde

eNSP華為模擬器交換機路由器裝置密碼設定取消

交換機設定密碼 system-view 進入系統檢視 [huawei]user-interface console 0 控制檯 [huawei-ui-console0]set authentication password cipher nihao 密碼 [huawei-ui-console

Linux系統時間RTC時間、時鐘設定同步、ntpd服務/ntpdate

Linux有兩個時間,一個是系統時間,一個是RTC時間(也叫硬體時間)。Linux系統啟動時,會自動獲取硬體時間,設定為系統時間。一、查詢系統時間:查詢系統時間:date查詢/設定硬體時間:       hwclock –r        顯示硬體時鐘與日期       hw

Jetson TX1開發筆記(一)開機設定刷機

轉載請註明作者和出處: http://blog.csdn.net/c406495762 PC平臺(Host): 虛擬機器Ubuntu14.04 嵌入式平臺(Target): Jeston TX1 一、開箱測試     Jetson TX1是英偉達公司出的GPU開發板,

gcc -l引數-L引數(編譯時標頭檔案路徑庫檔案路徑的設定相關)

放在/lib和/usr/lib和/usr/local/lib裡的庫直接用-l引數就能連結了,但如果庫檔案沒放在這三個目錄裡,而是放在其他目錄裡,這時我們只用-l引數的話,連結還是會出錯,出錯資訊大概是:“/usr/bin/ld: cannot find -lxxx”,也就是連結程式ld在那3個目錄裡找不到l

ROS 服務引數ROS Services and Parameters

1,ROS 服務是另一種節點通訊方式;允許節點之間傳送請求和接收回復。 2,rosservice命令可以很容易通過services建客戶端/伺服器通訊架構(C/S);       rosservice命令下有很多子命令可用: rosser

Microbiome巨集基因組分箱流程MetaWRAP分析實戰結果解讀

文章目錄 MetaWRAP—a flexible pipeline for genome-resolved metagenomic data analysis 分析實戰 0.下載腸道巨集基因組資料 1.read_qc質控

Microbiome巨集基因組分箱流程MetaWRAP安裝資料庫佈置

文章目錄 簡介 工作原理 優勢 功能模組 軟體安裝 資料庫配置 **CheckM資料庫** **KRAKEN資料庫** **NCBI_nt**

機器學習筆記 第3課引數演算法引數演算法

什麼是引數機器學習演算法?它與非引數機器學習演算法有何不同? “假設”通常會大大簡化學習過程,但也會限制學到的東西。將函式簡化為已知形式的演算法,稱為引數機器學習演算法。 它包括兩個步驟: 選擇函式的形式。 從訓練資料中學習該函式的係數。 常見的引數機器學習演算法是線

## __VA_ARGS__ ... 巨集可變引數

在GNU C中,巨集可以接受可變數目的引數,就象函式一樣,例如:  1 2 #define pr_debug(fmt,arg...) \ printk(KERN_DEBUG fmt, ##arg) 用可變引數巨集(var

request.getParameter(“引數名”) 中文亂碼解決方法【新手設定問題】【JSP】-表單傳值問題為什麼設定UTF-8之後還是亂碼?

request.getParameter(“引數名”) 中文亂碼解決方法【新手設定問題】【JSP】-表單傳值問題:為什麼設定UTF-8之後還是亂碼? 問題:jsp讀取的value值亂碼;設定UTF-8之後還是亂碼…… 備註:本文是轉載的,題目上增加關鍵詞方便查詢

python matplotlibplt.scatter() 大小顏色引數

語法 plt.scatter(x, y, s=20, c='b') 大小s預設為20,s=0時點不顯示;顏色c預設為藍色。 為每一個點指定大小和顏色 有時我們需要為每一個點指定大小和方向,以區分不同的點。這時,可以向s和c傳入列表。如: import matplotlib.pyp

Angular6學習筆記17在路由中傳引數接收引數

傳引數 1.在需要傳引數的元件的類檔案(ts檔案)中,構造方法中,宣告物件: constructor(private route: Router) { } 2.在路由中設定引數(有三種方式) routerLink屬性 a.對於單一引數 <a [router

巨集定義中的###的作用

核心中有很多的巨集定義,在巨集定義define中經常看到兩個字串##和#,這裡把它的用法做一下說明:  一、 ##是一個連線符號,用於把引數連在一起         例如:          &n

關於WinsockWinsock程式設計注意事項連線設定拆解

WSAAccept函式允許應用程式在決定是否接受傳入連線請求之前獲取呼叫者資訊,如呼叫者識別符號和服務質量。 這是通過回撥應用程式提供的條件函式來完成的。 如果服務提供商支援此功能,則可以在連線建立期間將WSAConnect函式中的引數指定的使用者到使用者資料和WSAAcc

大資料(二十七)Sqoop常用命令公用引數

一、常用命令列舉 命令 類 說明 import ImportTool 將資料匯入到叢集 export ExportTool

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

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

山科java實驗3-3編寫一個方法,返回一個double型的二維陣列,陣列中的元素通過解析字串引數獲得。例如,字串引數“1,2;3,4,5;6,7,8”,對應的陣列為 d[0,0

編寫一個方法,返回一個double型的二維陣列,陣列中的元素通過解析字串引數獲得。例如,字串引數:“1,2;3,4,5;6,7,8”,對應的陣列為:       d[0,0] = 1.0  d[0,1