One of the phase in compilation is pre processor replacement. In C programming there are multiple pre processor directives. The common one are include and define. There could be other directives like pragma and others which are compiler supported ones and may not be supported in all the compilers.
#include directive can be used to include the header files. If the header files are included <> brackets, the header file will be searched in the standard include paths mentioned as part of compilation with -I option. If the header files are used within double quotes “”, the current path will be used to search first before searching the standard paths.
#define will replace all the tokens with the values defined for the token.
Source: Interesting Facts about Macros and Preprocessors in C – GeeksforGeeks
main() can be called with 0 or more arguments in C, while main(void) cannot be called with any arguments. In case of C++ both means main can be called only without parameters.
Source: Difference between “int main()” and “int main(void)” in C/C++? – GeeksforGeeks
Type int can store 4 bytes. Since it is not qualified with unsigned, 1 most significant bit will be used to indicate sign. 0 means positive and 1 means negative. Range : -2147483648 to 2147483648
Source: int (1 sign bit + 31 data bits) keyword in C – GeeksforGeeks
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
Source: Is it fine to write “void main()” or “main()” in C/C++? – GeeksforGeeks
Assertions help programmers to test conditions and abort the programs. Mainly used when the code cannot execute further if the condition is not met.
The syntax of assert is
void assert(scalar expression);
Need to include the following header which defined the
Assert prints the error message to standard error
and terminates the program by calling abort(3).
assert( val == 0)
prog: some_file.c:16: some_func: Assertion `val == 0' failed.
Assertions can be turned off by defining NDEBUG macro. Adding NDEBUG will cause assert not to generate any code to print error and abort.
Recommendation is to not use the NDEBUG macro if using assert to detect error conditions as software may behave non-deterministically.
Source: Assertions in C/C++ – GeeksforGeeks
To match an ever-growing need for data storage space, Inventec (2356.TW), one of the key suppliers of world’s leading server brands, hyperscale data centers and server system integrators, announced the arrival of Entei – a 2U24Bay Storage Server System to support dual 2nd Gen Intel Xeon Scalable processors.
Source: Inventec Introduces Entei, the Advanced Storage Server System