Wpis z mikrobloga

@pyroxar: sam program nie urośnie ale urosną informacje dla debuggera. Jesli kompilujesz z opcją aby debug info było wkompilowane w binarke programu, to binarka urosnie. Ale urosnie nieznacznie, bo ta zmienna będzie pewnie występować tylko jeden raz.
@pyroxar: prosty eksperyment

#include <stdio.h>
int main(int argc, char *argv[]) {
for(int i=0; i<argc; i++)
printf("alamakota");
return 0;
}

i kompilujemy:

gcc test.c -O0 -g -o test_short_dbg
gcc test.c -O3 -o test_short_rel

następnie zamieniamy "i" na "iiwqjefoiqwjefoiqwjefoiqjwefoijqwoefijqwoiefjowiqjefoiqwjef"
i ponownie:

gcc test.c -O0 -g -o test_long_dbg
gcc test.c -O3 -o test_long_rel

i mamy wynik:

-rwxrwxr-x 1 0 0 17352 Mar 22 20:12 test_long_dbg
-rwxrwxr-x 1 0 0 15968 Mar 22 20:11 test_long_rel
@pyroxar: Nazwy zmiennych i tak są przez kompilator ubijane. Jak sobie otworzysz skompilowaną binarke przez jakieś narzędzie do reverse engineering to po swoich nazwach nie znajdziesz śladu. Mowa oczywiście o binarce w wersji release, bo w wersji debug takie informacje są przechowywane więc to może zrobić różnicę.