Ev3はわからないので、一般的な知識からの予想で回答します。
fdjkeighakei さんが書きました:1,static void button_clicked_handler(intptr_t button)と有りますがintptr_tとは何なのでしょうか。
intptr_tは(少なくともC言語標準では)ポインタの値を安全に保持できる符号付き整数型です。
N1570 7.20.1.4 Integer types capable of holding object pointersの1より引用
The following type designates a signed integer type with the property that any valid
pointer to void can be converted to this type, then converted back to pointer to void,
and the result will compare equal to the original pointer:
intptr_t
fdjkeighakei さんが書きました:2,void main_task(intptr_t unused)と有りますがこれも1と同様(inptr_t unused)の意味が分かりません。
(inptr_t unused)の意味はここに使われていないのでわかりません。
(in
tptr_t unused)は、intptr_t型の引数unusedをとるという意味です。
unusedなので、おそらくシステムの都合で関数の型を合わせて使いやすくするためのダミー引数、もしくは今回のプログラムでは不要な何らかの情報が渡される引数でしょう。
fdjkeighakei さんが書きました:またこの文以下のプログラムではボタンについて書かれていますがここで記述しないといけない理由が分かりません。上のswitch文に組み込むことはできないのでしょうか?
下の関数は、関数名にmainが含まれることからエントリポイント(プログラムの起動時にまず実行されるユーザー定義の関数)であると推測できます。
一方、上の関数は、関数名にhandlerが含まれることから、イベント(ここではbuttonがclicked)が発生したときに、
システムがそのことをユーザー定義のプログラムに伝えるために呼び出すコールバック関数であると推測できます。
エントリポイントが最初に1回しか呼び出されないと仮定すれば、静的変数を利用して分岐することで無理やり関数を共通化してswitch文に組み込むことはできると思いますが、
わざわざそんなことをしても可読性を下げるだけである気がします。
fdjkeighakei さんが書きました:3,app.h(2つめのコード)というものが有りそこではどうやら関数の宣言?定義?をしているようです。
このapp.hなるものは一体全体app.cのどの部分に影響して働きかけているのでしょうか?
app.cに直接宣言や定義が書かれていない識別子(ENTER_BUTTONやev3_led_set_colorなど)を使っている部分、といえると思います。
app.hからさらにAPIで定義される識別子を定義するファイルを読み込み、コンパイラに識別子の存在を伝える役割をしていると予測できます。
オフトピック
C言語ではなくC原語を学んでいるのですか…?