Skip to content

Preprocessing generates inline comments #7

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
beriberikix opened this issue Aug 25, 2018 · 1 comment
Closed

Preprocessing generates inline comments #7

beriberikix opened this issue Aug 25, 2018 · 1 comment
Labels
conclusion: invalid Issue/PR not valid topic: documentation Related to documentation for the project

Comments

@beriberikix
Copy link

I'm trying to use the new CLI as just a preprocessor just to get the *.cpp output. I took the standard Blink.ino app and ran ./arduino-cli-osx compile -b arduino:sam:arduino_due_x --preprocess --build-path ~/code ./Blink/Blink.ino. I do indeed get a *.cpp but it includes auto-generated comments. Is there a turn these off? See below:

#include <Arduino.h>
#line 1 "/Users/jberi/downloads/Blink/Blink.ino"
#line 1 "/Users/jberi/downloads/Blink/Blink.ino"
/*
  Blink

  Turns an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino
  model, check the Technical Specs of your board at:
  https://www.arduino.cc/en/Main/Products

  modified 8 May 2014
  by Scott Fitzgerald
  modified 2 Sep 2016
  by Arturo Guadalupi
  modified 8 Sep 2016
  by Colby Newman

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/Blink
*/

// the setup function runs once when you press reset or power the board
#line 26 "/Users/jberi/downloads/Blink/Blink.ino"
void setup();
#line 32 "/Users/jberi/downloads/Blink/Blink.ino"
void loop();
#line 26 "/Users/jberi/downloads/Blink/Blink.ino"
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}
@cmaglie
Copy link
Member

cmaglie commented Aug 30, 2018

Those are not comments, they are required to actually compile the .ino.

The generated part are:

  • the #include <Arduino.h>
  • the forward prototypes like:
    #line 32 "/Users/jberi/downloads/Blink/Blink.ino"
    void loop();
    

The forward prototypes are required if you need to call a function that is declared later like in the sketch:

void first() {
  second();
}

void second() {
}

void setup() {}
void loop() {}

The line directive is needed to help the compiler identify the line that has generated the prototype so, in case there is an error in that line, the error is reported on the line that is the source of the problem (line 32 of the original .ino in the case above).

@cmaglie cmaglie added topic: documentation Related to documentation for the project conclusion: invalid Issue/PR not valid labels Aug 30, 2018
per1234 added a commit that referenced this issue Aug 9, 2021
Add CI workflow to lint documentation files
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
conclusion: invalid Issue/PR not valid topic: documentation Related to documentation for the project
Projects
None yet
Development

No branches or pull requests

2 participants