先上源代碼: 文件為portmacro.h,來源於Dynasty項目中的底層代碼(NVIC中斷控制部分) 這一句讓我懵逼了. 宏定義還可以賦值!!?以往的認知都是宏定義為常量,常量不可以被賦值,所以宏一般都是出現在操作符的右側 ...
計算機科學里的宏 Macro ,是一種批量批處理的稱謂。一般說來,宏是一種規則或模式,或稱語法替換 ,用於說明某一特定輸入 通常是字符串 如何根據預定義的規則轉換成對應的輸出 通常也是字符串 。這種替換在預編譯時進行,稱作宏展開。 發現定義中有意思的點在於這個 語法替換 ,。 當宏定義值本身為常量時,這個宏就替換為一個常量, 如: define MACRO B ,MACRO B就不可以被重新賦值 ...
2020-01-19 11:23 0 1303 推薦指數:
先上源代碼: 文件為portmacro.h,來源於Dynasty項目中的底層代碼(NVIC中斷控制部分) 這一句讓我懵逼了. 宏定義還可以賦值!!?以往的認知都是宏定義為常量,常量不可以被賦值,所以宏一般都是出現在操作符的右側 ...
這樣定義后,結構體就可以這樣賦值 ...
一. c /c++語言中使用宏的主要目的主要有 3 個: 1. 提高代碼的可讀性; 把用到的常量定義成有意義的名字; 2. 無需函數調用,運行效率高; 對於一些簡單的操作,無需調用函數,雖然編程是強調模塊化,但是函數調用時,需要保護現場和恢復現場。這些都需要耗時。對於復雜的操作 ...
宏定義是C提供的三種預處理功能的其中一種,這三種預處理包括:宏定義、文件包含、條件編譯。 1.不帶參數的宏定義: 宏定義又稱為宏代換、宏替換,簡稱“宏”。 格式: #define 標識符 字符串 其中的標識符就是所謂的符號常量,也稱為“宏名”,字符串可以是常數、表達式、格式 ...
1、#define解析 #define是C語言中提供的宏定義的命令,其主要目的是為程序員編程時提供一定的方便,並能再一定程度上提供高級程序的運行效率。 1.1、#define命令解析 1.1.1、#define的概念 #define命令是C語言中的一個宏定義命令,它用來將一個標識符定義 ...
...
要寫好C語言,漂亮的宏定義是非常重要的。宏定義可以幫助我們防止出錯,提高代碼的可移植性和可讀性等。 在軟件開發過程中,經常有一些常用或者通用的功能或者代碼段,這些功能既可以寫成函數,也可以封裝成為宏定義。那么究竟是用函數好,還是宏定義好?這就要求我們對二者進行合理的取舍。 我們來看一個 ...
...