Hi!
I found another small bug in intellisense.
Probably applies to all IDE and VS versions, but just for info im using:
Arduino 1.8.5, (GCC) 4.9.2, Visual Studio 15.5.5 with Release 1801.27 of Visual Micro
In "normal" C++ on windows and on linux, uint8_t is a 1 byte value defined as an unsigned char. Creating a regular C++ project in visual studio, any version, will give the correct result when hovering over the define of uint8_t.
Unfortunately Intellisense on Visual Micro is reporting unit8_t as an unsigned int, which is wrong.
Here is some simple code (Header.h contains just the typedef for uChar, shown in the comment where used):
#include "Header.h"
unsigned char test1[] = { 0xFF, 0x00 };
uChar test2[] = { 0xFF, 0x00 }; // typedef uint8_t uChar;
uint8_t test3[] = { 0xFF, 0x00 };
void testUnsignedChar(uint8_t *cString)
{
cString[0]++;
}
void setup()
{
testUnsignedChar(test1);
testUnsignedChar(test2);
testUnsignedChar(test3);
}
void loop()
{
delay(1000);
}
As expected it compiles fine without warnings and works, but Intellisense is reporting an error as in the screenshot bellow