一、程序
sub 程序名(參數1,參數2,...)
{
- //程式碼...
}
//將轉彎的功能以程序包裝起來,要用時再呼叫。
sub turning(int power)
{
- OnRev(OUT_BC, power);//B、C反轉
Wait(3000);
OnFwd(OUT_C, power); //C正轉,B繼續反轉
Wait(500);
}
task main()
{
- OnFwd(OUT_BC, 80);
Wait(1000);
turning(30); //呼叫turning,傳入30%的動力
OnFwd(OUT_BC, 80);
Wait(2000);
turning(50); //呼叫turning,傳入50%的動力
Off(OUT_BC);
}
二、函式 (function)
傳回值型別 函式名(參數1, 參數2,…)
{
//…
return 傳回值;
}
與程序主要的不同點在於:
函式可有傳回值,若無則傳回值型別以 void 表示。
//隨機傳回x~y的任一數
int myRand(int x, int y)
{
- int result;
result = (x+ Random(y+1-x)); //隨機取 x~y
return result;
}
task main()
{
- int time,power;
time= myRand(2,5)*1000; //隨機取2~5秒
NumOut(5,20,time,true);
OnFwd(OUT_BC,80);
Wait(time); //隨機等待2~5秒
power= myRand(3,5)*10 ; //隨機取30、40或50
NumOut(5,10,power);
OnRev(OUT_C,power); //隨機以30%、40%或50%動力輸出
Wait(time); //隨機等待2~5秒
Off(OUT_BC);
}
三、inline function
inline 傳回值型別 函式名(參數1, 參數2,…)
{
- //…
return 傳回值;
}
與函式之不同處在於:
程式在編譯前,會先行內擴展(就是取代啦!),
將函式中的程式碼直接複製一份在呼叫的程式中,
直接執行函式中的指令,並非以呼叫的方式來調用函式,
因此,使用inline function會使程式碼大小增加,
但因省掉函式呼叫時,位址與記憶空間需保留的堆疊運算,
執行效率會比較高。
如果您的程式很大,NXT記憶體寸土寸金,
當然就不適合使用inline function了。
我遇上了一些有關於NXC方面的撰寫問題
回覆刪除請問您是否可以提供聯絡方式讓我向您請教