Because it’s not PlatformIO-specific, it’s only related to C++. What PIO / VSCode gives you is a “new file” button and a source folder. I can show you a blink example with multiple files.
src\main.cpp
#include <Arduino.h>
#include "blinky.h"
void setup() {
blinky_init();
}
void loop() {
do_blink(500);
}
src\blinky.h
#ifndef BLINKY_H /* include guards */
#define BLINKY_H
/* blinky initialization function */
void blinky_init();
/* blinks the LED once for an length of <ms> milliseconds. */
void do_blink(int ms);
#endif /* BLINKY_H */
src\blinky.cpp
#include "blinky.h"
#include <Arduino.h> /* we need arduino functions to implement this */
void blinky_init() {
pinMode(LED_BUILTIN, OUTPUT);
}
void do_blink(int ms) {
digitalWrite(LED_BUILTIN, LOW);
delay(ms);
digitalWrite(LED_BUILTIN, HIGH);
delay(ms);
}