Originariamente inviato da ramy89
Se ho un altro "volevo vedere se eri attento" me lo uso adesso![]()
Il punto è questo: se usi solo C e C++ standard, evitando tutti i casi di undefined e unspecified behavior il tuo codice dovrebbe funzionare in maniera perfettamente identica su qualunque sistema operativo tu lo esegua. Se hai necessità che esulano dallo standard (una su tutte: GUI) o usi codice platform-specific (API Win32 su Windows, syscall POSIX e X su *NIX, ...) oppure librerie che astraggono queste differenze (ad esempio le wxWidgets, su cui si basa lo stesso Code::Blocks).Delle volte da problemi ma alla fine sono soddisfatto,poi in generale non penso siano portabili,per renderla portabile c'è quasi sempre qualcosa da fare.
L'stdin/stdout e tutte le altre facilities standard sono uguali su tutte le macchine finché rientri nei casi d'uso previsti dallo standard; ciò che succede quando esci da queste specifiche dipende dall'implementazione.Poi conta che su mac anche se non è LINUX (il che equivale a dire UNIX gratuito ma anche trasandato) lo stdin non è uguale allo stdin su altre macchine.
Per cui se l' interfaccia standard non è la stessa può essere che il codice funzioni perfettamente,ma questo non è garantito (se ho sbagliato qua mi uso pure il terzo).