Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge

Compileroptimierung für bestimmte codebereiche deaktivieren

Synthetic_codes / 2 Antworten / Flachansicht Nickles

Moinsen allseits. Der Titel sagt eigentlich schon alles, aber hier nochmal mit erklärung:

Es geht darum, die Compileroptimierungen für einen bestimmten codebereich zu deaktivieren. Insbesorndere habe ich eine Stelle in einem Programm in dem 50sec gewartet werden muss. dort habe ich es per schleife gelöst, dass alle 5 sec eine meldung ausgegeben wird, wie lange noch zu warten ist:

for(ct=0;ct<10;ct++)
{
printf("Noch %d sekunden.\n",50-(ct*5));
sleep(5);
}

Der Compiler "optimiert" an dieser stelle alles so zusammen, dass 50 sec gewartet wird, und dann alle printf-meldungen ausgegeben werden. Da ich an anderer stelle auf diese optimierungen angewiesen bin, möchte ich selbige aber nur teilweise anwenden. Btw, Compiler ist der gcc-4.3

Noch eine 2. Frage: Mir ist aufgefallen, dass C bei funktionsaufrufen immer den selben datenbereich verwendet. sprich, habe ich eine funktion, in der eine Variable definiert wird, so ist diese beim nächsten aufruf der Funktion noch gesetzt. Wenn ich (p)Threads verwende, wird dann für jeden Thread ein neuer Datenbereich angelegt? oder muss ich hier zwangsläufig mit dynamischer Speicherzuweisung arbeiten?

'); DROP TABLE users;--
bei Antwort benachrichtigen