C a peklo updatov
Jan Waclawek
konfera na efton.sk
Pondělí Říjen 9 18:19:53 CEST 2023
Pred asi 8 rokmi som v jednom projekte pouzil kus C kodu ktory napisal
ktosi iny, znalejsi nez ja; bola tam pouzita funkcia strcasestr(). To je z
tych funkcii, ktore nie su v standarde, ale bezne su k prekladacom
pribalene, pretoze su velmi uzitocne. Konkretne strcasestr() ma tu istu
funkciu ako strstr() (t.j. hlada vyskyt pod-retazca v inom retazci, cize
je to uzitocne pre parsery) a byva prototypovany v <string.h>.
Teraz som z toho stareho projektu vykopiroval kus, pokusam sa prelozit, a
prekladac krici, ze nevie, co je strcasestr(). Hm.
Guglenie prezradilo
https://stackoverflow.com/questions/9935642/how-do-i-use-strcasestr , ze
treba pouzit _GNU_SOURCE - fajn, pouzil som podla navodu, prelozil,
funguje.
Ale pozeram do toho stareho projektu, a tam ziadny _GNU_SOURCE nie je, a
pritom sa da bez problemov prelozit.
Najdi tri rozdiely.
No, rozdiel je v prekladaci - na novsi projekt som pouzil novsi
gcc/binutils/newlib. A vysvitlo, ze strcasestr() je "skryte" tym
_GNU_SOURCE az od roku 2014, pricom starsi projekt som prekladal starsim
prekladacom, z roku 2013...
Takze updaty aj ineho nez Thunderbirdu vedia otravit cloveku den...
wek
Další informace o konferenci Hw-list