巨集定義跟多個引數

__小小酥__發表於2020-11-12

巨集定義跟多個引數

由於keil配置了庫函式包,編譯出現錯誤如下:

.\Objects\new.axf: Error: L6218E: Undefined symbol assert_param (referred from stm32f4xx_gpio.o)

原因是keil配置中少個巨集

在stm32f4xx.h中,可以看到
在這裡插入圖片描述
在這裡插入圖片描述
由此可見不配置USE_STDPERIPH_DRIVER無法包含stm32f4xx_conf.h
看到一個用法

#if defined A|| defined B /* A或 B被定義,則選擇執行printf1,否則執行printf2 */
	printf1(".....");
#else
	printf2(".....");
#endif


#if !defined A|| !defined B /* A或 B未被定義,則選擇執行printf1,否則執行printf2 */
	printf1(".....");
#else
	printf2(".....");
#endif

#if defined 和 #if !defined能跟多個巨集定義引數
#ifdef和#ifndef僅能跟一個巨集定義引數,不能使用表示式

相關文章