音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

各位C大蝦幫我看看這句話怎么不能調(diào)用?謝謝!

作者:FZJ 欄目:單片機
各位C大蝦幫我看看這句話怎么不能調(diào)用?謝謝!
unsigned CHAR s1,s2,s3,s4;

void  sjadd (a,b,c,d)
unsigned CHAR  a,b,c,d;
{
  if  (++a>9)
  {
   a=0;
   if (++b>5)
   {
    b=0;
    if (++c>9)
     {
      c=0;
      if (++d>9)
       {
       a=b=c=d=0;
         }}}}
}
void main ()
{
sjadd (s1,s2,s3,s4);  //a,b,c,d是形參,s1,s2,s3,s4是實參,想調(diào)用sjadd(....)函數(shù)來改變S1-S4的值,我這樣寫不知哪里錯了,請幫忙看看,謝謝了!
}

2樓: >>參與討論
yadog
re
汗ing
整的全局變量太多

程序看著膩不舒服



3樓: >>參與討論
computer00
這樣是按值傳遞,當然不能改變s1-s4了。
 
4樓: >>參與討論
lag3631
c
unsigned CHAR s1,s2,s3,s4;

void  sjadd (a,b,c,d)
unsigned CHAR  a,b,c,d;
{
  if  (++a>9)
  {
   a=0;
   if (++b>5)
   {
    b=0;
    if (++c>9)
     {
      c=0;
      if (++d>9)
       {
       a=b=c=d=0;
         }}}}
}
void main ()
{

sjadd (s1,s2,s3,s4);
scanf("%c,%c,%c,%c",&s1,&s2,&s3,&s4);\\沒有輸入怎么會有結果呢
printf("%c,%c,%c,%c",s1,s2,s3,s4);\\輸出
}

5樓: >>參與討論
FZJ
謝謝大家
我是寫單片機程序,想在程序中反復調(diào)用上面的函數(shù)來改變S1-S4和其他變量的值,不知道有沒有好的方法可以實現(xiàn),希望大家?guī)蛶兔Γx謝!
我也知道多用全局變量會會影響移植問題,但是我想不出如何進行函數(shù)的模塊化,所以才寫上面這段測試程序來請教大家。

6樓: >>參與討論
李冬發(fā)
老兄,你的C是什么版本的C和在環(huán)境里運行的?!要不誰能能答?
 
7樓: >>參與討論
computer00
使用指針。請看我在另一個帖的回復。
 
8樓: >>參與討論
FZJ
電腦00麻煩您再去看看,謝謝!
我是寫PIC的編譯軟件是HI_TECH  PICC8.05版本.謝謝!

9樓: >>參與討論
javie
不是值,而是要用指針來傳遞
 
10樓: >>參與討論
computer00
re:
http://bbs.21ic.com/club/bbs/list.asp?boardid=27&t=1943250&tp=%u6211%u90A3%u4E2A%u662F%u5F3A%u5236%u7C7B%u578B%u8F6C%u6362%u3002%u5728%u8FD9%u91CC%u53EF%u4EE5%u4E0D%u5199

11樓: >>參與討論
javie
如此
這樣調(diào)用是通過值傳遞的。所以是不能改變s1-s4的值的

像你這樣,在調(diào)用時,只是將s1-s4的值傳遞給了函數(shù),在函數(shù)運行過程中,是不會修改這些變量的值的。

如果要改變他們的值,有兩種方法:

1.直接在函數(shù)里使用全局變量。
如:
void sjadd(void)
{
s1=1;
}

2.使用地址傳遞。即使用指針。
如:
void sjadd(unsigned CHAR *a)
{
*a=1;
}
unsigned CHAR s1;
void main(void)
{
sjadd((unsigned CHAR *)&s1);




參與討論
昵稱:
討論內(nèi)容:
 
 
相關帖子
proteus32x16的LED漢字顯示屏
請教串口竊電
PCB板做好,焊接好了。
求教:普通IO口怎樣分辨輸入信號的頻率
我想做一個項目,不知能不能...
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號