ここから本文です

void setupは空っぽの中に関数などを定義するものなのですが?

アバター

ID非公開さん

2017/10/1415:07:02

void setupは空っぽの中に関数などを定義するものなのですが?

もしそうだとしたらvoid setupの前になぜ定義をわざわざ書くのでしょうか?
void setupの中に関数などを定義すればいいと思うのですが、よろしくお願いします。

閲覧数:
52
回答数:
2
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

qui********さん

2017/10/1418:45:25

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q131807475...
と同じ人? 他の質問と合わせればより適切な回答が出来るかも知れないのに、意味もなくID非公開にするとそういう連携のチャンスを放棄することになるんだけどなぁ。IDというかニックネームなんて随時変えられるんだから、一連の質問は同じIDですればいいのに。

> void setupは空っぽの中に関数などを定義する
ちょっと言いたいことがわかりません。空っぽの中って?
C/C++(そしてArduino言語)では、関数の中で関数を定義することは出来ません。

あちらの質問で書いたように、定義をどこで行うかは別に強制されません。ただし、使う場所より前で使う関数の素性は明らかになっていなければいけませんけれど。

Arduinoを他人のマネだけでなく自分で使いたいと思ったら、やはりCの入門書レベルとC++のクラスあたりについての一通りのことは知っておいた方がいいです...

  • アバター

    質問者

    ID非公開さん

    2017/10/1603:20:40

    解答ありがとうございます。

    あの後、アルディーノで2つサーボモータ内の1つをシリアル通信で指定した一文字aを送ると0度から60度に動くというプログラムを書きました。

    #include<Servo.h>
    Servo mServo0,mServo1;


    void setup()
    {
    mServo0.attach(9);
    mServo1.attach(10);
    delay(500);

    Serial.begin(9600);
    // put your setup code here, to run once:}



    void loop()
    {
    mServo0.attach(9);
    mServo0.write(0);//mServo0の初期値を0度とした。
    char val;
    if (Serial.available()>0){
    val=(char)Serial,read();
    if(val=='a')
    mServo0.write(60);//aを送信するとmServo0は60度にする。

    }
    をコンパイルしたところエラーa function-definition is not allowed here before '{' tokenがでました。
    いろいろ試したのですがうまくいきません。
    14行目が間違っているそうなのですが、なにが間違っているか教えていただけないでしょうか?
    お願い致します。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

her********さん

2017/10/1417:52:07

>void setupは空っぽの中に関数などを定義するものなのですが?
いえ、ちがいます。
プログラム中、1回しか実行しなくていい初期設定のような動作を書きます。

>void setupの前になぜ定義をわざわざ書くのでしょうか?
setup中に書いても、他の関数からは参照できないからです。

>void setupの中に関数などを定義すればいいと思うのですが、
前と同じで、setup中に関数を定義しても、
他の関数からは見えないので呼び出せません。

Cでは、
int main() {
setup();
while(1) {
loop();
}
return 0;
}
というメインの関数が作成され、setup() や、loop() はそこから呼び出されます。
setup() は1回だけ、loop() は電源切るまで永遠に
実行されます。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる