user51106: I am not super experienced with c++ and I know that the syntax for C++ and the code written/compiled by the arduino IDE are slightly different.

I would like to be able to write code, compile it the same way the arduino IDE does, and run it, without uploading it to a board. 

I dont need to test any code that interacts with any hardware. I simply want to be able to test basic syntax to make sure my concepts work before integrating with the full program.
I have written a few Arduino programs and I think the most complicated thing I've used were pointer functions, but I'd like to be able to test out code without needing to upload to a board for every change, while relying on Serial.print.
I have found alternatives that help with debugging and although that is helpful, I'd like to avoid the need to upload to a board every time I want to test changes for basic concepts 

user60431: You can use any C++ IDE you like, best when bundled with a compiler, for example Code::Blocks. Assuming you're using Windows: A combination of a decent editor like Notepad++ and some good compiler chain like MinGW will do, too. If you absolutely have to you could also use MS Visual Studio, I don't bother.
Then create standard console programs with this main():
void setup();
void loop();

int main()
{
    setup();
    for (;;)
    {
        loop();
    }
}

And append your hardware-less Arduino code.

user70735: PlatformIO is a plugin for Visual Studio Code that has support for many embedded device, including most Arduinos

51106: <p>I am not super experienced with c++ and I know that the syntax for C++ and the code written/compiled by the arduino IDE are slightly different.</p>

<hr>

<p>I would like to be able to write code, compile it the same way the arduino IDE does, and run it, without uploading it to a board. </p>

<hr>

<p>I dont need to test any code that interacts with any hardware. I simply want to be able to test basic syntax to make sure my concepts work before integrating with the full program.</p>

<p>I have written a few Arduino programs and I think the most complicated thing I've used were pointer functions, but I'd like to be able to test out code without needing to upload to a board for every change, while relying on Serial.print.</p>

<p>I have found alternatives that help with debugging and although that is helpful, I'd like to avoid the need to upload to a board every time I want to test changes for basic concepts </p>
 60431: <p>You can use any C++ IDE you like, best when bundled with a compiler, for example Code::Blocks. Assuming you're using Windows: A combination of a decent editor like Notepad++ and some good compiler chain like MinGW will do, too. If you absolutely have to you could also use MS Visual Studio, I don't bother.</p>

<p>Then create standard console programs with this <code>main()</code>:</p>

<pre><code>void setup();
void loop();

int main()
{
    setup();
    for (;;)
    {
        loop();
    }
}
</code></pre>

<p>And append your hardware-less Arduino code.</p>
 70735: <p><a href="https://platformio.org/platformio-ide" rel="nofollow noreferrer">PlatformIO</a> is a plugin for Visual Studio Code that has support for many embedded device, including most Arduinos</p>
