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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2757|回復: 11
收起左側

單片機C語言程序函數定義的疑問 請教論壇師傅們

[復制鏈接]
ID:232366 發表于 2021-8-24 19:52 | 顯示全部樓層 |閱讀模式
通定義函數為:
void teset(void)//沒有返回值  沒有參數型函數
{

}

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

}

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


retuan teset;
}

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


retuan flag;

}
下面為調用時用為:
void Teset2()
{
bit flag;

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


回復

使用道具 舉報

ID:94657 發表于 2021-8-24 21:42 | 顯示全部樓層
問題發現的不對。誰說參數不能是unsigned char?誰說一定要用*Pointerb?C語言函數的參數可以有很多種類型,只不過你遇到的例子是用指針做參數罷了。隨便挑一個函數:
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產生電壓進行輸出的例子,u16就不是*Pointerb

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:232366 發表于 2021-8-25 02:08 | 顯示全部樓層
anchor8583 發表于 2021-8-24 21:42
問題發現的不對。誰說參數不能是unsigned char?誰說一定要用*Pointerb?C語言函數的參數可以有很多種類型, ...

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

使用道具 舉報

ID:711539 發表于 2021-8-25 09:11 | 顯示全部樓層
想必閣下用的是51單片機吧,我用51內核的單片機寫了如下代碼,編譯通過,運行正常。供君參考。
1.png
回復

使用道具 舉報

ID:232366 發表于 2021-8-25 10:09 | 顯示全部樓層
菜鳥yc 發表于 2021-8-25 09:11
想必閣下用的是51單片機吧,我用51內核的單片機寫了如下代碼,編譯通過,運行正常。供君參考。

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

使用道具 舉報

ID:711539 發表于 2021-8-25 11:48 | 顯示全部樓層
SHANWAZI 發表于 2021-8-25 10:09
感謝回復  是的使用的是51c語言  感謝您的解答回去好好研究一下!冒昧問一下您的這個背景可以共享不!挺 ...

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


  4.     return teset;
  5. }
復制代碼

調用程序為:
  1. void Teset2()
  2. {
  3.     if(Teset(看自己需要填個實參))
  4.     {
  5.         ....................................省略
  6.     }
  7. }
復制代碼

回復

使用道具 舉報

ID:711539 發表于 2021-8-25 11:53 | 顯示全部樓層
SHANWAZI 發表于 2021-8-25 10:09
感謝回復  是的使用的是51c語言  感謝您的解答回去好好研究一下!冒昧問一下您的這個背景可以共享不!挺 ...

本站也有類似的背景色設置,http://www.zg4o1577.cn/bbs/dpj-188186-1.html
CSDN等都有的,你可以網上搜索下,自己“替換”一下
我的是根據自己的喜好自己在軟件“設置”的,如果你需要的話,我可以給你分享我的“設置”截圖
回復

使用道具 舉報

ID:232366 發表于 2021-8-25 20:09 | 顯示全部樓層
菜鳥yc 發表于 2021-8-25 11:48
你可以做如下修改測試一下。函數原型:

調用程序為:

非常感謝  您上述中我已經做實驗函數原型括號內帶字節型參數在進行傳遞數據時就會出錯我是這樣的如下:

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

//對Value進行處理省略。。。。。。。。。。。
//處理完畢標志位置位
TesetFlag=1;

return TesetFlag;//返回標志位
}

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

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

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

}
進行參數進行傳遞就形參與實參參數傳遞時不會發生改變!!!!!!!!!!
回復

使用道具 舉報

ID:161164 發表于 2021-8-25 21:30 | 顯示全部樓層
SHANWAZI 發表于 2021-8-25 20:09
非常感謝  您上述中我已經做實驗函數原型括號內帶字節型參數在進行傳遞數據時就會出錯我是這樣的如下:
...

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

使用道具 舉報

ID:232366 發表于 2021-8-25 23:35 來自手機 | 顯示全部樓層
lkc8210 發表于 2021-8-25 21:30
用的時候是這樣寫的! 老弟!  !  !  !  !  !  !  !  !  !  !  !  !
TesetFlag111=Teset(V ...

不好意思  手機打字不太方便打錯了
回復

使用道具 舉報

ID:624769 發表于 2021-8-28 18:26 | 顯示全部樓層
看你發的代碼,里面錯誤好多,就講講關鍵的吧。
首先:
bit test_bit_return(unsigned char dat)
{
      bit   testbit;

}
回復

使用道具 舉報

ID:624769 發表于 2021-8-28 18:35 | 顯示全部樓層
看了你發的內容,實在是……,覺得還是用具體的代碼跟你講吧。
首先,聲明位變量。
bit        testflag1,testflag2;

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

你可以得到 testflag1 = 1  , testflag2 = 0,  
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 色婷婷综合久久久中字幕精品久久 | 成人av鲁丝片一区二区小说 | 成人午夜激情 | 黄网站免费在线观看 | 日韩精品一区二区三区在线播放 | 黄色免费av | 国产精品一区网站 | 日本在线视频一区二区 | 精品日韩一区二区 | 亚洲天堂一区二区 | 久久精品久久精品久久精品 | 波多野结衣二区 | 国产精品美女在线观看 | 中文字幕成人av | 欧洲精品码一区二区三区免费看 | 久久久精品视频免费 | 久久精品视频在线免费观看 | 欧美日韩一区二区在线观看 | 自拍偷拍第一页 | 精品国产一区二区三区久久影院 | 欧美日韩免费一区二区三区 | 亚洲国产精品99久久久久久久久 | 日本国产精品视频 | 国产精品美女久久久久久免费 | 97超碰在线播放 | 中文在线一区二区 | 欧美精品二区 | 人操人人 | 国产精品久久久久久久久久久久 | 亚洲欧美国产精品久久 | 日韩在线免费视频 | 中文字幕免费在线 | 九九综合 | 久久国产一区二区 | 米奇狠狠鲁| 国产精品久久久久久久岛一牛影视 | 国产精品精品视频一区二区三区 | 国产视频中文字幕在线观看 | 国产视频福利在线观看 | 中文字幕在线第一页 | 在线亚洲一区 |