c++ccompiler-construction

Are there C/C++ compilers that do not require standard library includes?


All applicants to our company must pass a simple quiz using C as part of early screening process.

It consists of a C source file that must be modified to provide the desired functionality. We clearly state that we will attempt to compile the file as-is, with no changes.

Almost all applicants use "strlen" but half of them do not include "string.h", so it does not compile until I include it.

Are they just lazy or are there compilers that do not require you to include standard library files, such as "string.h"?


Solution

  • GCC will happily compile the following code as is:

    main()
    {
       printf("%u\n",strlen("Hello world"));
    }
    

    It will complain about incompatible implicit declaration of built-in function ‘printf’ and strlen(), but it will still produce an executable.

    If you compile with -Werror it won't compile.