標題:
C語言帶#號的編譯預(yù)處理命令和typedef類型名重定義
[打印本頁]
作者:
qiushuliang
時間:
2022-6-1 10:12
標題:
C語言帶#號的編譯預(yù)處理命令和typedef類型名重定義
#define 宏名 字符串
以一個宏名稱來代表字符串,即當C語言程序中任何地方使用到宏名稱時,則將以所代表的字符串來代替。宏定義的一般是常數(shù)或者表達式常數(shù)項,不是變量。
用宏定義有什么好處呢?
1.如C語言程序中多處 引用某一常數(shù)量,可以用宏來定義,便于程序修改,維護時修改宏名即可完成所有常數(shù)量的修改。
例:
#define CLOCK_BASE 1 //程序編譯時會有把程序中所有用CLOCK_BASE 表示的地方,替換成常數(shù) 1
#define CLOCK_40MS (65535-40000*CLOCK_BASE) // 表達式
#define LED_ON ( ) RB1=1
#define LED_OFF ( ) RB1=0
復(fù)制代碼
條件編譯
#if 表達式
#else
#endif
例1:
#if 0 //0永遠不成立,編譯#else 后面的代碼
P1 = P1 | 0XFE ;
keyvalue = P1 & 0XFE ;
#else
P1 = P1 | 0X7E ;
keyvalue = P1 & 0X7E ;
#endif
復(fù)制代碼
typedef 重定義類型名
typedef unsigned int u16 ;
typedef unsigned char u8 ;
void typedef Demo1 (void)
{
Bool j ;
j=0 ;
}
復(fù)制代碼
#ifndef 宏名
# ifndef PWM //如果PWM沒有被定義過,則編譯下面的代碼
#define PWM
#define SUCCESS 0
#define FAILURE 1
#endif
復(fù)制代碼
有人說 : 程序=數(shù)據(jù)結(jié)構(gòu)+算法,C語言程序?qū)W到這里還沒有正真的開始,一個用C語言編寫的單片機成品,打開電源時MCU執(zhí)行的第一個程序是從main()這個函數(shù)開始的,在程序中重復(fù)執(zhí)行循環(huán),可以讓MCU不斷的輪詢外部狀態(tài),以進行實時處理。C語言程序往往在編寫程序前要先指定頭文件,
#include 文件名.h,因為頭文件里面定義了很多單片機的公共變量及函數(shù),必須聲明成外部的(extern),以利其他模塊和函數(shù)使用。下節(jié)從點亮一顆LED燈開始,說明單片機程序是如何運行起來的。
作者:
a399288395
時間:
2022-6-2 08:44
這個資料挺好, 對于新手很有幫助,
作者:
showlight
時間:
2022-8-7 21:28
void typedef Demo1 (void)
{
Bool j ;
j=0 ;
}
這個代碼 運行不了, 是我的機子出什么 問題了嗎?
作者:
showlight
時間:
2022-8-7 21:35
這個資料很不錯,可就是我不會。
作者:
qiushuliang
時間:
2022-8-26 11:28
showlight 發(fā)表于 2022-8-7 21:28
void typedef Demo1 (void)
{
Bool j ;
typedef bit Bool; #類型名重定義
void TypedefDemo1(void) #更正一下錯誤typedef Demo1 改寫成 TypedefDemo1
{
Bool j;
j = 0;
}
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1