2

See following example:

$ cat foo.c
#include <stdio.h>

int main()
{
    return 0;
}
$ gcc -E foo.c | head
# 1 "foo.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "foo.c"
# 1 "/usr/include/stdio.h" 1 3 4
# 36 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/sys/feature_tests.h" 1 3 4
# 30 "/usr/include/sys/feature_tests.h" 3 4
#pragma ident "%Z%%M%   %I%     %E% SMI"

$

I tried Google but I don't know what keywords I should use for searching. Any links to the documentation?

pynexj
  • 19,215
  • 5
  • 38
  • 56

1 Answers1

4

They are linemarkers for identifying which source file and line a particular line of code came from. They can be used to generate more accurate diagnostic messages, for example. Documentation links:

  1. Preprocessor Output
  2. Line Control

You can use the -P option to omit them if you'd like.

Carl Norum
  • 219,201
  • 40
  • 422
  • 469