An Empirical Analysis of C Preprocessor Use
IEEE Transactions on Software Engineering
Do background colors improve program comprehension in the #ifdef hell?
Empirical Software Engineering
Hi-index | 0.00 |
Today's large software systems and libraries are geared towards a broad range of platforms and environments, often relying on conditional compilation through preprocessor directives to generate specific builds for a given set of configuration flags. In spite of the well-documented benefits of using preprocessor directives for conditional compilation, heavy preprocessor presence can hinder code readability and affect maintenance and debugging. Although various existing preprocessor tools hide unwanted preprocessor conditionals, we present a more portable Eclipse-based solution called CViMe (Conditional-compilation Viewer and Miner) that relies on object-modeling to not only fold non-compiled code, but refactor conditionally compiled blocks into reusable units like macros, significantly reducing the presence of preprocessor directives at the editor level.