久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索

問(wèn)兩個(gè)關(guān)于單片機(jī)C語(yǔ)言編程的問(wèn)題

查看數(shù): 2224 | 評(píng)論數(shù): 13 | 收藏 0
關(guān)燈 | 提示:支持鍵盤(pán)翻頁(yè)<-左 右->
    組圖打開(kāi)中,請(qǐng)稍候......
發(fā)布時(shí)間: 2019-6-7 06:32

正文摘要:

/*************************第一個(gè)問(wèn)題***********************************************/     第一個(gè)問(wèn)題:如下圖所示,我這里是有五個(gè)源文件,然后有四個(gè)頭文件,因?yàn)楹瘮?shù)只能在頭文件聲明而不能定義, ...

回復(fù)

ID:517466 發(fā)表于 2019-6-8 15:24
你可以單獨(dú)做一個(gè)h文件,里面#define uchar unsigned char。然后再每個(gè)用到的c文件中引入這個(gè)h文件。使用typedef不行,我猜是因?yàn)殛P(guān)鍵字不能包含空格。typedef unsigned char uchar,在unsigned char之間存在空格,所以不行。但是使用typedef char* PCHAR這樣的可以。
ID:519141 發(fā)表于 2019-6-8 19:21
#define是C語(yǔ)言中定義的語(yǔ)法,是預(yù)處理指令,在預(yù)處理時(shí)進(jìn)行簡(jiǎn)單而機(jī)械的字符串替換,不作正確性檢查,只有在編譯已被展開(kāi)的源程序時(shí)才會(huì)發(fā)現(xiàn)可能的錯(cuò)誤并報(bào)錯(cuò)。
typedef是關(guān)鍵字,在編譯時(shí)處理,有類(lèi)型檢查功能。它在自己的作用域內(nèi)給一個(gè)已經(jīng)存在的類(lèi)型一個(gè)別名,但不能在一個(gè)函數(shù)定義里面使用typedef。

根據(jù)typedef與define的定義,說(shuō)明你的頭文件沒(méi)有包含標(biāo)準(zhǔn)庫(kù)
ID:557861 發(fā)表于 2019-6-8 19:57
董董 發(fā)表于 2019-6-8 05:44
我知道不同功能分文件寫(xiě)是為了方便移植,我想問(wèn)的是main()函數(shù)在最后鏈接的時(shí)候會(huì)調(diào)用在別的源文件中定義 ...

1)第一個(gè)問(wèn)題,你只要在調(diào)用的文件里include被調(diào)用函數(shù)聲明的頭文件即可
2)是因?yàn)槟阒貜?fù)定義了一個(gè)符號(hào),你可以把所有的類(lèi)型定義集中到一個(gè)頭文件,然后每個(gè)要使用的頭文件中都包含這個(gè)就可以了,這樣源文件就不用再次包含了
ID:523537 發(fā)表于 2019-6-9 16:08
wfy1008 發(fā)表于 2019-6-8 19:57
1)第一個(gè)問(wèn)題,你只要在調(diào)用的文件里include被調(diào)用函數(shù)聲明的頭文件即可
2)是因?yàn)槟阒貜?fù)定義了一個(gè)符 ...

嗯嗯,我也覺(jué)得這是個(gè)很好的解決辦法,多謝指點(diǎn)
ID:523537 發(fā)表于 2019-6-9 16:07
a452541823 發(fā)表于 2019-6-8 19:21
#define是C語(yǔ)言中定義的語(yǔ)法,是預(yù)處理指令,在預(yù)處理時(shí)進(jìn)行簡(jiǎn)單而機(jī)械的字符串替換,不作正確性檢查,只有 ...

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

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

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

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品一区二区三 | 亚洲黄色成人网 | 久久av网| 中文字幕一区二区三区四区五区 | 特黄小视频 | 99精品欧美一区二区蜜桃免费 | 自拍偷拍精品 | 国产精品久久久久久久久久免费看 | 国产日韩av一区二区 | 欧美精品区 | 91国内精精品久久久久久婷婷 | 久久国产精品一区二区三区 | 欧美爱爱视频网站 | 国产精品视频久久久久久 | 国产亚洲网站 | 999精品在线| 免费国产成人av | 欧美高清免费 | 日韩中文一区 | 亚洲精品第一 | 成人黄视频在线观看 | 亚洲欧美在线视频 | 国产xxx在线观看 | 国产欧美一区二区三区免费 | 亚洲第一区国产精品 | 黄色a级一级片 | 久久69精品久久久久久国产越南 | 成人av观看| 亚洲九九精品 | 亚洲成av人片在线观看 | 日韩精品中文字幕在线 | 成年人网站免费视频 | 国产精品视频999 | 人人九九精 | 一区二区高清在线观看 | 成人福利在线视频 | 黄色片网站国产 | 精品一区免费 | 国产美女精品视频免费观看 | 欧美一区二区大片 | 成人午夜激情 |