質問: Arduinoを授業で学んでいるものです。
回答: 簡単に言えば「関数から出力された値」のことです。 コンピューターのプログラムはすべて、プロシージャーという小規模プログラムの集まりでできています。 C言語ではこれを関数(function)BASICではサブルーチンと呼んでいます。 クラスとか、オブジェクトも、その一種です。 これらのプロシージャーどうしは入力を受けて、それを何らかの形に変えて、出力をするというプロセスでプログラムは完結します。 この出力先に対して、Aというプロシージャーが別のプロシージャーBに向けて出力した値は引数によってその値が引き渡され、プロシージャーBが処理を終えてから、プロシージャーAに直接数値を”戻す時”、その出力データを「戻り値」と呼びます。 図にするとこんなイメージです 【プロシージャーA】→引数→【プロシージャーB】→<戻り値>→【プロシージャーA】 戻り値についてはあらかじめプロシージャーBの側でどんな形式で戻るのかを明示して、プロシージャーAはその形式で戻ってくることを期待して戻り値の受け方を設計をします。 その相互の取り決めをプロシージャーAが認識する場所がソースの頭の部分で宣言されている関数プロトタイプです。 プロシージャーBが期待する戻り値と引数の形式がここで指定されるわけですね。 今度はC++のクラスの動作をお役所の仕事に置き換えると... 住民票がほしいとします。 適切なお役所を指定しないといけません。 <国クラス>を基底クラスとした<県>クラスを規定します。 <国クラス>にはほかにも<法律メンバ変数>や<労働保険省クラス>や<防衛省クラス>なども含んでいますが、今回は関係ないですから、<県クラス>をさらに調べます。 -------------------------<余談> ちなみに、防衛省クラスメンバ変数である「兵器構造体」には所有している兵器のリストが書かれていますが、その情報のほとんどはprotect属性によって、親クラスの<国クラス>以外からのアクセスができなくなっていますw。 そのために必要なアクセス関数として<防衛大臣クラス>も用意されています。たまにマスコミがインタビューをしたりしてぽろっと防衛機密について公表されたりします。予算メンバ変数は公開されているのでpublicですね。体質や慣習は旧帝国時代からのものを引き継いで外部からの圧力では変わらないので、さしずめprivateメンバ変数でしょうかw。 そうすると、<市区町村郡クラス>がでてきます。 この下には<市役所クラス>がいます。 <市役所クラス>の下には<住民課メンバ関数>があります。 ここで、あなたは市役所を訪れようとしますが... 市役所を建設しないと訪問しようがありません。 なので、インスタンス(建物)ああらかじめたてられていなければなりません。 でもまあほとんどの場合は建設済みですので問題ありません。 市の名前は鎌倉市と決められていました。 <市役所> .鎌倉市(); これで、鎌倉市役所の中に入れます。 鎌倉市.住民課メンバー関数にアクセスします。 そうすると、住民票がほしいなら住民票申請用紙に名前や住所を書かないといけません。 これが<引数>です。 これには書くための書式も決まってます。省略できる項目もあれば絶対に書かないといけない項目もあります。 その項目にはカタカナでとかヒラガナでとか、漢字の楷書でとか指定もあります。 <市役所> .鎌倉市(住民票申請用紙型 申請書変数 ); この「住民票申請用紙型」が<引数の型>です。 で、申請書に記入して、出てきたものが<住民票>という「戻り値」です。 これにも決まった書式がありますよね?。 これが「住民票型」の「書類 構造体」という戻り値です。 ところがこれにはあらかじめCONST属性が掛けられています。鉛筆書きではない項目ってことですね。 見ることはできますが、追記したりはできません。 というのが結構あって、コンピューターの「戻り値」を直接加工できないような場合もちょくちょくあったりします。