• Poul-Henning Kamp's avatar
    Arcanæ of the C-preprocessor (#436), brought to you by FlexeLint: · 5d3099e2
    Poul-Henning Kamp authored
    Don't:
    
    	MACRO(
    		a,
    	#if FOO
    		b,
    	#else
    		c,
    	#endif
    		d
    	)
    
    A function like macro was invoked whose arguments extended for
    multiple lines, which included preprocessor statements. This is
    almost certainly an error brought about by a missing right parenthesis.
    
    By the rules of Standard C the preprocessing directive is absorbed
    into the macro argument but then will not subsequently get executed.
    For this reason some compilers treat the apparent preprocessor
    directive as a directive. This is logical but not portable.
    
    It is therefore best to avoid this construct.
    5d3099e2
Name
Last commit
Last update
.github Loading commit data...
bin Loading commit data...
devscripts Loading commit data...
doc Loading commit data...
etc Loading commit data...
include Loading commit data...
lib Loading commit data...
m4 Loading commit data...
man Loading commit data...
tools Loading commit data...
.gitignore Loading commit data...
.syntastic_c_config Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING Loading commit data...
ChangeLog Loading commit data...
INSTALL Loading commit data...
LICENSE Loading commit data...
Makefile.am Loading commit data...
Makefile.inc.phk Loading commit data...
Makefile.phk Loading commit data...
README.Packaging Loading commit data...
README.rst Loading commit data...
autogen.des Loading commit data...
autogen.sh Loading commit data...
config.phk Loading commit data...
configure.ac Loading commit data...
flint.lnt Loading commit data...
varnish-legacy.m4 Loading commit data...
varnish.m4 Loading commit data...
varnishapi-uninstalled.pc.in Loading commit data...
varnishapi.pc.in Loading commit data...