Questions: Difference between revisions

No edit summary
monotype for #include spec
Line 41: Line 41:
==[[C]]==
==[[C]]==
*Q: Why aren't ''"target"''-style <tt>#includes</tt> a good idea with any sane compiler?
*Q: Why aren't ''"target"''-style <tt>#includes</tt> a good idea with any sane compiler?
*A: So long as you can append to the default include search path (ie, the <tt>-I</tt> option to [[gcc]]), the ''&lt;target&gt;''-style include can search in your project directory. Building from the source toplevel, a simple <tt>-I.</tt> added to CFLAGS allows #include &lt;toplevel/relative/filename&gt;. Moved headers will trigger a preprocessing failure. If ''"target"''-style <tt>#includes</tt> are used, the directory of the source being compiled is typically searched prior to other include paths. This means moving source files or introducing new headers can change the files being included, which is almost always undesirable.
*A: So long as you can append to the default include search path (ie, the <tt>-I</tt> option to [[gcc]]), the ''&lt;target&gt;''-style include can search in your project directory. Building from the source toplevel, a simple <tt>-I.</tt> added to CFLAGS allows <tt>#include <toplevel/relative/filename></tt>. Moved headers will trigger a preprocessing failure. If ''"target"''-style <tt>#includes</tt> are used, the directory of the source being compiled is typically searched prior to other include paths. This means moving source files or introducing new headers can change the files being included, which is almost always undesirable.
===[[GCC]]===
===[[GCC]]===
*Q: How do I see which optimization flags are enabled with -Ox?
*Q: How do I see which optimization flags are enabled with -Ox?