The reasoning is because it calls an initialization function inside of a robot config file. Here’s an example of a robot config file that I had a long time ago:
#include "vex.h"
using namespace vex;
using signature = vision::signature;
using code = vision::code;
// A global instance of brain used for printing to the V5 Brain screen
brain Brain;
// VEXcode device constructors
controller Controller1 = controller(primary);
motor Left1 = motor(PORT11, ratio18_1, true);
motor Left2 = motor(PORT12, ratio18_1, true);
motor Left3 = motor(PORT13, ratio18_1, false);
motor Left4 = motor(PORT14, ratio18_1, true);
motor Right1 = motor(PORT17, ratio18_1, false);
motor Right2 = motor(PORT18, ratio18_1, true);
motor Right3 = motor(PORT19, ratio18_1, false);
motor Right4 = motor(PORT20, ratio18_1, false);
motor Intake = motor(PORT9, ratio6_1, false);
motor Lift = motor(PORT8, ratio36_1, false);
inertial Inertial = inertial(PORT10);
digital_out BackMogo = digital_out(Brain.ThreeWirePort.A);
digital_out FrontMogo = digital_out(Brain.ThreeWirePort.B);
limit LiftSwitch = limit(Brain.ThreeWirePort.C);
// VEXcode generated functions
// define variable for remote controller enable/disable
bool RemoteControlCodeEnabled = true;
/**
* Used to initialize code/tasks/devices added using tools in VEXcode Pro.
*
* This should be called at the start of your int main function.
*/
void vexcodeInit( void ) {
// nothing to initialize
}
The function is typically used to calibrate sensors or zero them. Additionally, I believe that function call there was for people transitioning from RobotC in the V4/Cortex era back in 2017-2018 where there was a default init function in their task main() too: The RobotC competition template
The robot configs are traditionally auto-generated via VEXCode programming environment (the one that most people are no longer using due to switching to VSCode, using VEXCode’s extension instead) through their graphical setup configuration a long time ago.
However, now when you use a C++ Competition template using the VEX Robotics VSCode extension, you don’t have a robot config file because they assume you will code your own, whether in-line or in another file.