欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

問兩個關于單片機C語言編程的問題

查看數: 2777 | 評論數: 13 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2019-6-7 06:32

正文摘要:

/*************************第一個問題***********************************************/     第一個問題:如下圖所示,我這里是有五個源文件,然后有四個頭文件,因為函數只能在頭文件聲明而不能定義, ...

回復

ID:517466 發表于 2019-6-8 15:24
你可以單獨做一個h文件,里面#define uchar unsigned char。然后再每個用到的c文件中引入這個h文件。使用typedef不行,我猜是因為關鍵字不能包含空格。typedef unsigned char uchar,在unsigned char之間存在空格,所以不行。但是使用typedef char* PCHAR這樣的可以。
ID:519141 發表于 2019-6-8 19:21
#define是C語言中定義的語法,是預處理指令,在預處理時進行簡單而機械的字符串替換,不作正確性檢查,只有在編譯已被展開的源程序時才會發現可能的錯誤并報錯。
typedef是關鍵字,在編譯時處理,有類型檢查功能。它在自己的作用域內給一個已經存在的類型一個別名,但不能在一個函數定義里面使用typedef。

根據typedef與define的定義,說明你的頭文件沒有包含標準庫
ID:557861 發表于 2019-6-8 19:57
董董 發表于 2019-6-8 05:44
我知道不同功能分文件寫是為了方便移植,我想問的是main()函數在最后鏈接的時候會調用在別的源文件中定義 ...

1)第一個問題,你只要在調用的文件里include被調用函數聲明的頭文件即可
2)是因為你重復定義了一個符號,你可以把所有的類型定義集中到一個頭文件,然后每個要使用的頭文件中都包含這個就可以了,這樣源文件就不用再次包含了
ID:523537 發表于 2019-6-9 16:08
wfy1008 發表于 2019-6-8 19:57
1)第一個問題,你只要在調用的文件里include被調用函數聲明的頭文件即可
2)是因為你重復定義了一個符 ...

嗯嗯,我也覺得這是個很好的解決辦法,多謝指點
ID:523537 發表于 2019-6-9 16:07
a452541823 發表于 2019-6-8 19:21
#define是C語言中定義的語法,是預處理指令,在預處理時進行簡單而機械的字符串替換,不作正確性檢查,只有 ...

一般單片機程序都是#include <reg52.h>不會寫#include <stdio.h>呀,但是包含reg52.h條件下也能typedef unsigned char uchar
ID:523537 發表于 2019-6-8 19:18
suncat0504 發表于 2019-6-8 15:24
你可以單獨做一個h文件,里面#define uchar unsigned char。然后再每個用到的c文件中引入這個h文件。使用ty ...

但是如果我在只有一個main()函數中用typedef unsigned char uchar是可以的,后面的用uchar沒有報錯,但是我一分開文件在別的源文件寫就報錯,不太明白。不過你說的單獨寫一個頭文件里面#define uchar unsigned char倒是一個很好的解決辦法,多謝指點了!
ID:93224 發表于 2019-6-8 17:31
頭文件相互包含
ID:552592 發表于 2019-6-8 15:13
typedef的頭文件你加了嗎?
ID:523537 發表于 2019-6-8 05:44
univers 發表于 2019-6-7 22:28
這個就是多文件,模塊化編程的原理了,每個個功能分開編寫,清晰明了。放便以后移植。

我知道不同功能分文件寫是為了方便移植,我想問的是main()函數在最后鏈接的時候會調用在別的源文件中定義的函數對吧?以及第二個問題為啥typedef在頭文件里不能用呢?
ID:525821 發表于 2019-6-8 04:17
與編譯器有關吧。
ID:382454 發表于 2019-6-7 22:28
這個就是多文件,模塊化編程的原理了,每個個功能分開編寫,清晰明了。放便以后移植。
ID:523537 發表于 2019-6-7 20:37
各位進來看下指點下呀,多謝了

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表