Importable header "a.h":#define X 123 // #1 #define Y 45 // #2 #define Z a // #3 #undef X // point of undefinition of #1 in "a.h"
Importable header "b.h":import "a.h"; // point of definition of #1, #2, and #3, point of undefinition of #1 in "b.h" #define X 456 // OK, #1 is not active #define Y 6 // error: #2 is active
Importable header "c.h":#define Y 45 // #4 #define Z c // #5
Importable header "d.h":import "a.h"; // point of definition of #1, #2, and #3, point of undefinition of #1 in "d.h" import "c.h"; // point of definition of #4 and #5 in "d.h" int a = Y; // OK, active macro definitions #2 and #4 are valid redefinitions int c = Z; // error: active macro definitions #3 and #5 are not valid redefinitions of Z — end example]
Macro name | Value | |
201603L | ||
201304L | ||
201902L | ||
200704L | ||
201606L | ||
200809L | ||
201304L | ||
201603L | ||
201811L | ||
201907L | ||
201806L | ||
201907L | ||
201907L | ||
201711L | ||
201811L | ||
201907L | ||
200707L | ||
201304L | ||
201907L | ||
200604L | ||
201707L | ||
201411L | ||
201603L | ||
201707L | ||
201606L | ||
201603L | ||
201606L | ||
201902L | ||
201806L | ||
201907L | ||
201511L | ||
201803L | ||
200806L | ||
201606L | ||
200907L | ||
201907L | ||
201411L | ||
201510L | ||
201911L | ||
201606L | ||
200809L | ||
201603L | ||
200710L | ||
200710L | ||
201304L | ||
200610L | ||
201309L | ||
201411L | ||
201606L | ||
201611L | ||
200806L | ||
200704L | ||
200710L | ||
200809L | ||
201907L | ||
201304L | ||
200704L | ||
201611L |