Aktywne Wpisy
Neycza +207
Patrzcie jakiego ładnego maila dostałem! I co Kingu jak to powiedziałeś wykop to same #!$%@?* i nic nie mogą? Mamy 3 strike!!! Za tydzień kanał mleczne gówno może spaść!
#kononowicz
#kononowicz
Wyobraźcie sobie że żona Harrego ociera się o jakiegoś spoconego tancerza Helmuta, podczas gdy jej mąż #!$%@? po boisku za piłką. No #!$%@? impasybol
#mecz
#mecz
Pliki c są kompilowane do osobnych plików o. Zawierają one symbole, ale te nie mają deklaracji funkcji, tylko nazwę i adres.
Jeśli w drugim pliku c funkcja będzie miała inną deklarację, to wywali mi błąd przy budowaniu. Tylko co za to odpowiada, jeśli kompilator kompiluje każdy plik źródłowy z osobna, a linker wie tylko o nazwach symboli?
Przy okazji sprostuję poprzedni wpis. Zapomniałem, że C nie ma przecież przeładowań funkcji, więc jak drugi raz zadeklarujesz tę funkcję, to wszystko się skompiluje i zlinkuje, ale możesz mieć segfaulta.
foo(int)
odfoo(const char *)
odbar::foo(int)
. Tu masz szczegóły: https://pl.wikipedia.org/wiki/Dekorowanie_nazwProgram działa "ok" ( ͡° ͜ʖ ͡°)
main.c
#include
void doSomething(void);
int main (){
puts("o hai");
doSomething();
return 0;
}
second.c
#include
void doSomething(int nothing){
puts("no elo");
}
$ gcc main.c second.c
$ ./a.out
o hai
no elo