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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3222|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)C語言程序函數(shù)定義的疑問 請教論壇師傅們

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
通定義函數(shù)為:
void teset(void)//沒有返回值  沒有參數(shù)型函數(shù)
{

}

unsigned caar Teset(unsigned char Num,)//帶返回值  和帶參數(shù)型函數(shù)
{

}

今天在做實(shí)驗(yàn)時(shí)突發(fā)奇想定義了一個(gè)函數(shù):
bit Teset(此括號里面為什么不能定義unsigned cahr 變量呢???)
{
bit teset;


retuan teset;
}

而是必須為如下:
bit Teset(unsigned char *Pointerb必須用以指針類型變量來進(jìn)行參數(shù)傳遞呢????不是疑問)
{
bit flag;


retuan flag;

}
下面為調(diào)用時(shí)用為:
void Teset2()
{
bit flag;

flag=Teset(&Pointerb這里必須要&上才可以正常吧之值取出來????這是什么原理?????求師傅解答,)
if(flag==1)
{
....................................省略
}
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:94657 發(fā)表于 2021-8-24 21:42 | 只看該作者
問題發(fā)現(xiàn)的不對。誰說參數(shù)不能是unsigned char?誰說一定要用*Pointerb?C語言函數(shù)的參數(shù)可以有很多種類型,只不過你遇到的例子是用指針做參數(shù)罷了。隨便挑一個(gè)函數(shù):
void Dac1_Set_Vol(u16 vol)
{
        u16 temp;       
        if(vol>4999) vol=4999;
        temp=vol*4096.0/5000;
        DAC_SetChannel1Data(DAC_Align_12b_R,temp);
}
這是用STM32的DA產(chǎn)生電壓進(jìn)行輸出的例子,u16就不是*Pointerb

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

板凳
ID:232366 發(fā)表于 2021-8-25 02:08 | 只看該作者
anchor8583 發(fā)表于 2021-8-24 21:42
問題發(fā)現(xiàn)的不對。誰說參數(shù)不能是unsigned char?誰說一定要用*Pointerb?C語言函數(shù)的參數(shù)可以有很多種類型, ...

感謝您的耐心回復(fù)!是這樣的請看倒數(shù)第一二個(gè)函數(shù)定義時(shí)使用的是bit型函數(shù)其返回值為bit型!!!!而在此函數(shù)圓括號中(使用整形變量來傳遞參數(shù)時(shí)形參傳遞參數(shù)時(shí)會發(fā)生錯(cuò)誤而使用指針變量時(shí)就不會)
回復(fù)

使用道具 舉報(bào)

地板
ID:711539 發(fā)表于 2021-8-25 09:11 | 只看該作者
想必閣下用的是51單片機(jī)吧,我用51內(nèi)核的單片機(jī)寫了如下代碼,編譯通過,運(yùn)行正常。供君參考。

1.png (40.39 KB, 下載次數(shù): 98)

1.png
回復(fù)

使用道具 舉報(bào)

5#
ID:232366 發(fā)表于 2021-8-25 10:09 | 只看該作者
菜鳥yc 發(fā)表于 2021-8-25 09:11
想必閣下用的是51單片機(jī)吧,我用51內(nèi)核的單片機(jī)寫了如下代碼,編譯通過,運(yùn)行正常。供君參考。

感謝回復(fù)  是的使用的是51c語言  感謝您的解答回去好好研究一下!冒昧問一下您的這個(gè)背景可以共享不!挺好看的!
回復(fù)

使用道具 舉報(bào)

6#
ID:711539 發(fā)表于 2021-8-25 11:48 | 只看該作者
SHANWAZI 發(fā)表于 2021-8-25 10:09
感謝回復(fù)  是的使用的是51c語言  感謝您的解答回去好好研究一下!冒昧問一下您的這個(gè)背景可以共享不!挺 ...

你可以做如下修改測試一下。函數(shù)原型:
  1. bit Teset(unsigned cahr val)
  2. {
  3.     bit teset;


  4.     return teset;
  5. }
復(fù)制代碼

調(diào)用程序?yàn)椋?br />
  1. void Teset2()
  2. {
  3.     if(Teset(看自己需要填個(gè)實(shí)參))
  4.     {
  5.         ....................................省略
  6.     }
  7. }
復(fù)制代碼

回復(fù)

使用道具 舉報(bào)

7#
ID:711539 發(fā)表于 2021-8-25 11:53 | 只看該作者
SHANWAZI 發(fā)表于 2021-8-25 10:09
感謝回復(fù)  是的使用的是51c語言  感謝您的解答回去好好研究一下!冒昧問一下您的這個(gè)背景可以共享不!挺 ...

本站也有類似的背景色設(shè)置,http://m.raoushi.com/bbs/dpj-188186-1.html
CSDN等都有的,你可以網(wǎng)上搜索下,自己“替換”一下
我的是根據(jù)自己的喜好自己在軟件“設(shè)置”的,如果你需要的話,我可以給你分享我的“設(shè)置”截圖
回復(fù)

使用道具 舉報(bào)

8#
ID:232366 發(fā)表于 2021-8-25 20:09 | 只看該作者
菜鳥yc 發(fā)表于 2021-8-25 11:48
你可以做如下修改測試一下。函數(shù)原型:

調(diào)用程序?yàn)椋?/blockquote>

非常感謝  您上述中我已經(jīng)做實(shí)驗(yàn)函數(shù)原型括號內(nèi)帶字節(jié)型參數(shù)在進(jìn)行傳遞數(shù)據(jù)時(shí)就會出錯(cuò)我是這樣的如下:

bit Teset(unsigned char Value/*字節(jié)形參*/)
{
bit TesetFlag;

//對Value進(jìn)行處理省略。。。。。。。。。。。
//處理完畢標(biāo)志位置位
TesetFlag=1;

return TesetFlag;//返回標(biāo)志位
}

//以下為主函數(shù)調(diào)用上面函數(shù)時(shí)的如下:
void main()
{
bit TesetFlag111;
unsigned char  Value111=100;

while(1)
{
TesetFlag111=Teset(unsigned char Value111/*字節(jié)實(shí)參*/);
if(TesetFlag111==1)
{
//處理別的省略
}
}
}

1:問題就是在這里實(shí)參給形參傳遞參數(shù)時(shí)實(shí)參的實(shí)際值沒有完全傳遞給形參 而發(fā)生了改變這是我一直困惑的
2:使用字節(jié)型函數(shù)如:
unsigned char Teset(unsigned char Value)
{

}
進(jìn)行參數(shù)進(jìn)行傳遞就形參與實(shí)參參數(shù)傳遞時(shí)不會發(fā)生改變!!!!!!!!!!
回復(fù)

使用道具 舉報(bào)

9#
ID:161164 發(fā)表于 2021-8-25 21:30 | 只看該作者
SHANWAZI 發(fā)表于 2021-8-25 20:09
非常感謝  您上述中我已經(jīng)做實(shí)驗(yàn)函數(shù)原型括號內(nèi)帶字節(jié)型參數(shù)在進(jìn)行傳遞數(shù)據(jù)時(shí)就會出錯(cuò)我是這樣的如下:
...

用的時(shí)候是這樣寫的! 老弟!  !  !  !  !  !  !  !  !  !  !  !  !
TesetFlag111=Teset(Value111/*字節(jié)實(shí)參*/);
回復(fù)

使用道具 舉報(bào)

10#
ID:232366 發(fā)表于 2021-8-25 23:35 來自觸屏版 | 只看該作者
lkc8210 發(fā)表于 2021-8-25 21:30
用的時(shí)候是這樣寫的! 老弟!  !  !  !  !  !  !  !  !  !  !  !  !
TesetFlag111=Teset(V ...

不好意思  手機(jī)打字不太方便打錯(cuò)了
回復(fù)

使用道具 舉報(bào)

11#
ID:624769 發(fā)表于 2021-8-28 18:26 | 只看該作者
看你發(fā)的代碼,里面錯(cuò)誤好多,就講講關(guān)鍵的吧。
首先:
bit test_bit_return(unsigned char dat)
{
      bit   testbit;

}
回復(fù)

使用道具 舉報(bào)

12#
ID:624769 發(fā)表于 2021-8-28 18:35 | 只看該作者
看了你發(fā)的內(nèi)容,實(shí)在是……,覺得還是用具體的代碼跟你講吧。
首先,聲明位變量。
bit        testflag1,testflag2;

再定義返回位的子函數(shù),
bit        test_bit_return(unsigned char dat)
{
        bit flag;
        if(dat == 0x00)        flag = 1;
        else        flag = 0;
        return        flag;
}
最后在main函數(shù)中用以下調(diào)用。
testflag1 = test_bit_return(0x00);
testflag2 = test_bit_return(0x12);

你可以得到 testflag1 = 1  , testflag2 = 0,  
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表