除錯微控制器程式中遇到的c語言指標問題

2021-05-28 16:18:05 字數 1448 閱讀 4020

數碼管顯示hello

/*數碼管靜動態顯示,特別注意用c語言寫的左移函式,參考《深度解析c語言中的指標》*/

#include

#include

#define uint unsigned int

#define uchar unsigned char

uchar table=;

void display(uchar table);

sbit dula=p2^6;

sbit wela=p2^7;

uint num0;

uchar temp;

void moveleft(uchar temp);

uchar x;

void delay(uint z)//z=100為100ms

void main()

}void display(uchar table)

}void moveleft(uchar temp)//c語言寫的迴圈左移,形參改變不了實參

else

單步除錯發現是void moveleft(uchar temp),temp根本就沒左移,形參改變不了實參,想用的引用,發現c語言中不能用,是c++的特權。

找到#include "iostream.h"

void changevalue(int* p)//int*與*是兩個不同的概念

int main()

;void display(uchar table);

sbit dula=p2^6;

sbit wela=p2^7;

uint num0;

uchar temp;

void moveleft(uchar *temp);

uchar x;

void delay(uint z)//z=100為100ms

void main()

}void display(uchar table)

}void moveleft(uchar *temp)//c語言寫的迴圈左移,形參改變不了實參

else

}/*  c語言寫的迴圈左移解釋

#include "iostream.h"

void changevalue(int* p)//int*與*是兩個不同的概念

int main()

{int a;

a=2;

cout《小結:

1.形參修改實參的問題知道,也用過,不過真正動起手來,就出問題了,動手

2.c語言與c++的區別,以後要注意了

3.開始對int *p=& temp,&temp是取temp的位址,*p是位址的內容,為什麼中間是等號不太理解。後來發現(int*)p是用int*來定義p這個位址*表示p為指標變數int表示這個指標變數是一整形,p代表位址與&temp的位址之間的關係,也對int *與*的概念有了一定了解

最後希望在csdn上多認識一些朋友,技術上的非技術上的。

微控制器中段程式 微控制器程式的存放

1 對於燒錄在微控制器裡面的程式,程式的 段,data段,bss段,rodata段等都存放在微控制器的flash中。當微控制器上電後,初始化彙編 將data段,bss段,複製到微控制器的ram中,並建立好堆疊,開始呼叫程式的main函式。以後,便有了程式儲存器和資料儲存器之分,程式執行時從flash...

微控制器程式除錯點滴(一)

微控制器用了很多年,也做過很多案例,有做心得筆記的習慣,以此分享給大家。一 靈動微mm32f103 串列埠點對點雷射雷達實現電單車後測距系統 專案採用上海靈動微的mm32f103 m3晶元,用串列埠1 3,連線3個點對點的雷射模組,實現到魔托車正後方與後左右兩邊各30度的測距,目的是在後方10公尺內...

微控制器C語言程式設計

一 首先我們先了解一下51微控制器的標頭檔案 include 為了能看懂reg51.h標頭檔案,下面需了解keil c51編譯器擴充套件的關鍵字 關鍵字用途 說明bit 位標量宣告 宣告乙個位標量或位型別 sbit 位變數宣告 宣告乙個可位定址變數 sfr特殊功能暫存器宣告 宣告乙個特殊功能暫存器 ...