Diskuze: Pole ukazatel, pomoc
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Do deklarace funkce nepiš počáteční hodnoty to je blbost, dosadíš je až za běhu programu v main. Funkce musí být variabilní a pracovat s různými hodnotami. Počet hodnot nejni omezen ( asi ... ) a hodnota je závislá na zvoleném typu proměnné. např.
#include <iostream>
void MojeFunkce(int,int,int);
using namespace std;
int main()
{
MojeFunkce(10,20,30);
return 0;
}
void MojeFunkce(int X, int Y, int Z)
{
cout << "hodnota X je: " << X << endl;
cout << "hodnota Y je: " << Y << endl;
cout << "hodnota Z je: " << Z << endl;
}
funkce MojeFunkce přebírá 3 hodnoty a poté je vypisuje.
Nebo můžeš použít typ, který používá několik hodnot najednou, např.
#include <iostream>
typedef int PoleTriHodnot[3];
using namespace std;
void MojeFunkce(PoleTriHodnot &);
int main()
{
PoleTriHodnot dvojpole[2] = {{255, 0, 0},{0, 255, 0}};
MojeFunkce(dvojpole[0]);
MojeFunkce(dvojpole[1]);
return 0;
}
void MojeFunkce(PoleTriHodnot &X)
{
cout << "hodnota 1.hodnoty je: " << X[0] << endl;
cout << "hodnota 2.hodnoty je: " << X[1] << endl;
cout << "hodnota 3.hodnoty je: " << X[2] << endl;
}
funkce MojeFunkce taky přebírá 3 hodnoty, ale už v jediné proměnné. Ty odkazy (&) tam psát nemusíš, klidně je vymaž, ty použiješ až budeš pracovat s třídami.
Asi to budu muset trochy dovysvetlit.. Celé to je z Embended světa konkratne z ARM Cortex M3 a funkce WER_send(uint8_t (*color)[3]) je pomněrně komplexní a hlavně odladěna tak, aby dat odesilala s přesností na instrukci, jelikož data musí chodit z chybou max 100ns. Pro tento okamžik berme způsob předávání dat do ní jako neměnný fakt. Ještě snad prozradím, že funkce nastavuje kalibrator a předavaji se ji data o RGB složkách světla. Tyto hodnoty se jednak počítaji "v programu", ale ja bych potřeboval nějak definovat i předeefinované hodnoty, které by šlo snadno používat při psani firmware. Něco jako
#define ORANGE {255,165,0}
#define TYRKYS {48,214,200}
WER_send( &ORANGE );
...
WER_send( &TYRKYS );
Kdy změřené a předefinované hodnoty barev uložím do hlavičkového souboru.
Zobrazeno 3 zpráv z 3.