0 Daumen
59 Aufrufe

Frage:

Allgemeine Frage: Enthält eine .exe Datei immer den Gesamten Quellcode eines Programmes? Also ich schließe hier verschiedene DDL-Dateien aus sondern nur den Quelltext eines Programmes. Beispiel: Wenn ich mir MS Word ansehe dann enthält dort die .exe Datei den Gesamten Quellcode des Prrogrammes - in Maschinensprache?


Vielen Dank.

von

1 Antwort

0 Daumen

Die exe-Datei enthält überhaupt keinen Quellcode, sondern das was Compiler und Linker daraus machen.

Funktionen aus dem Quellcode, die nicht verwendet werden, landen nicht in der exe-Datei.

Beispiel.

main1.c

#include <stdio.h>

int main() {
      printf("Hello World!\n");
      return 0;
}

main2.c

#include <stdio.h>

int main() {
      printf("Hello World!\n");
      return 0;
}

int max(int i, int j) {
      return i > j ? j: i;
}

Nach gcc -s main1.c -o main1 und gcc -s main2.c -o main2 haben die erzeugten Dateien main1 und main2 genau die gleiche Größe.

von 3,5 k

Ja ich meinte nicht den Quellcode sondern den Maschinencode. Wenn ich mir z.b Windows Word mir ansehe ist diese .exe Datei 1.597 kb groß. Wenn ich alle sonstigen DDL Dateien außen vor lasse wird ja der Quellcode in Maschinensprache übersetzt. Ich stelle mir nur die Frage ob die exe Datei in Word z.b, den Gesamten Quelltext in Maschinensprache übersetzt, enthält?

ob die exe Datei in Word z.b, den Gesamten Quelltext in Maschinensprache übersetzt, enthält?

Dass dem nicht so ist, siehst du in dem Beispiel aus meiner Antwort.

Achso Danke. Ich dachte nämlich immer dass der Quelltext in Maschinensprache übersetzt wird und dies dann in der .exe Datei gespeichert wird. Jetzt habe ich es besser verstanden.

dass der Quelltext in Maschinensprache übersetzt wird

Das wird so gemacht.

und dies dann in der .exe Datei gespeichert wird.

Das wird so gemacht.

Aber Funktionen, die überhaupt nicht aufgerufen werden, werden dabei ignoriert.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community