La portabilità c'e' fintanto che tu non vada ad utilizzare librerie architettura-dipendenti.

Come detto nel post precedente (per fare un esempio) se scrivi del software che deve interagire pesantemente con il SO (oppure programmi che interagiscono con la rete), questo sicureamente non sara portabile, perche' creare processi sotto win e sicuramente diverso che crearli sotto linux, la gestione dei processi e diversa, perche ovviamente hanno scedulatori diversi, questo sicuramente incide su come devi scrivere un applicazione.

Ovvio pero' se conosci C sai che puoi comunque scrivere codice portabile facedondo pesantemente uso delle regole del preprocessore, in modo da andare a sostituire codice dove e necessario, e lasciarlo invariato altrove.

bye bye