C standard says:
_ _LINE_ _ The presumed line number (within the current source file) of the
current
source line (an integer constant).
So, it should be a signed integer (same as int on your running architecture
which is internally either int32_t or int64_t depending on how int is
represented).
For type safety, it is important that __LINE__ is an int because a lot of code
uses this type to call functions as below:
void debug(const char* file, int line, const char* msg) {
printf("%s(%d) %s\n", file, line msg);
}
gcc, clang and tcc all use an int as you can see below, so tcc looks right to
me: