How to uglify or minify C code

11.7k views Asked by At

Using gcc I can remove comments and unwanted blank lines, but I want to reduce a size of file also, is there any options in gcc or any other tool to do so

At present I do like this

gcc -fpreprocessed -dD -E  -P source_code.c > source_code_comments_removed.c 

Here is scenario assume that this is my source_code.c

#include <stdio.h>
main()
{ 
      // declar variable i
      int i=0;

      /* multiline comment
      for loop
      demo stuff
      */
      for(i=1; i<=5; i++)
      {
            // just print something
            printf("Hello %d \n",i);
      }

}

I want to minify like this, removed comments and blank lines

#include <stdio.h>
main(){int i=0;for(i=1; i<=5; i++){printf("Hello %d \n",i);}}

Note : I am on Linux please don't suggest any windows based solution

1

There are 1 answers

9
sergej On BEST ANSWER
sed -rb 's/ {6}//g' main.c |
sed -rb 's/\/\/.*$//g' |
tr -d '\n' |
sed -rb 's/\/\*.*\*\///g' |
sed -rb 's/(#include.*>)/\1\n/g'

will give you:

#include <stdio.h>
main(){int i=0;for(i=1; i<=5; i++){printf("Hello %d \n",i);}}

However, as stated in the in the comments, this doesn't make much sense and will not reduce the size of your compiled object file!