ВУЗ:
Составители:
Рубрика:
ɜɵɡɵɜɚɬɶ ɋɢ-ɩɪɨɝɪɚɦɦɵ ɢɡ ɤɨɦɚɧɞɧɨɣ ɫɬɪɨɤɢ MS DOS ɫ ɩɟɪɟɞɚɱɟɣ ɜ ɩɪɨ-
ɝɪɚɦɦɭ ɧɟɨɛɯɨɞɢɦɵɯ ɚɪɝɭɦɟɧɬɨɜ. ɋɬɚɧɞɚɪɬɧɵɣ ɩɪɨɬɨɬɢɩ ɮɭɧɤɰɢɢ
main
ɢɦɟɟɬ ɜɢɞ.
int main (int argc, char *argv[], char *envp[])
ȼ ɤɨɧɤɪɟɬɧɨɣ ɩɪɨɝɪɚɦɦɟ ɦɨɠɧɨ ɨɛɴɹɜɥɹɬɶ ɮɭɧɤɰɢɸ main ɛɟɡ ɜɨɡɜɪɚ-
ɳɚɟɦɨɝɨ ɡɧɚɱɟɧɢɹ (ɜɨɡɜɪɚɳɚɸɳɭɸ ɬɢɩ
void) ɫ ɢɫɩɨɥɶɡɨɜɚɧɢɟɦ ɬɨɥɶɤɨ
ɞɜɭɯ ɩɟɪɜɵɯ ɩɚɪɚɦɟɬɪɨɜ ɢɥɢ ɜɨɨɛɳɟ ɛɟɡ ɩɚɪɚɦɟɬɪɨɜ. ɉɚɪɚɦɟɬɪɵ
argc ɢ
argv ɫɥɭɠɚɬ ɞɥɹ ɩɟɪɟɞɚɱɢ ɜ ɩɪɨɝɪɚɦɦɭ ɚɪɝɭɦɟɧɬɨɜ ɜ ɜɢɞɟ ɦɚɫɫɢɜɚ ɫɬɪɨɤ.
ɉɚɪɚɦɟɬɪ
argc ɫɨɞɟɪɠɢɬ ɱɢɫɥɨ ɷɥɟɦɟɧɬɨɜ ɷɬɨɝɨ ɦɚɫɫɢɜɚ, argv - ɷɬɨ ɦɚɫɫɢɜ
ɭɤɚɡɚɬɟɥɟɣ ɧɚ ɩɟɪɟɞɚɜɚɟɦɵɟ ɫɬɪɨɤɢ, ɩɪɢɱɟɦ ɩɟɪɜɵɣ ɷɥɟɦɟɧɬ ɦɚɫɫɢɜɚ, ɧɚ
ɤɨɬɨɪɵɣ ɭɤɚɡɵɜɚɟɬ
argv[0], ɫɨɞɟɪɠɢɬ ɢɦɹ ɩɪɨɝɪɚɦɦɵ (ɢɦɹ exe-ɮɚɣɥɚ
ɩɪɨɝɪɚɦɦɵ), ɨɫɬɚɥɶɧɵɟ ɷɥɟɦɟɧɬɵ ɩɪɟɞɫɬɚɜɥɹɸɬ ɫɨɛɨɣ ɚɪɝɭɦɟɧɬɵ ɢɡ ɤɨ-
ɦɚɧɞɧɨɣ ɫɬɪɨɤɢ MS DOS. ɉɚɪɚɦɟɬɪ
envp ɢɫɩɨɥɶɡɭɟɬɫɹ ɞɥɹ ɞɨɫɬɭɩɚ ɤ ɷɥɟ-
ɦɟɧɬɚɦ ɬɟɤɭɳɟɣ ɫɪɟɞɵ MS DOS.
2.7. Ȼɢɛɥɢɨɬɟɤɚ ɜɪɟɦɟɧɢ ɜɵɩɨɥɧɟɧɢɹ
ȼ ɨɩɪɟɞɟɥɟɧɢɢ ɹɡɵɤɨɜ ɋɢ ɢ ɋɢ++ ɨɬɫɭɬɫɬɜɭɸɬ ɨɩɟɪɚɬɨɪɵ ɜɜɨɞɚ-
ɜɵɜɨɞɚ, ɨɩɟɪɚɰɢɢ ɧɚɞ ɫɬɪɨɤɨɜɵɦɢ ɞɚɧɧɵɦɢ ɢ ɦɧɨɝɢɟ ɞɪɭɝɢɟ ɫɪɟɞɫɬɜɚ,
ɢɦɟɸɳɢɟɫɹ ɜ ɞɪɭɝɢɯ ɹɡɵɤɚɯ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ. ɗɬɨɬ ɧɟɞɨɫɬɚɬɨɤ ɤɨɦɩɟɧ-
ɫɢɪɭɟɬɫɹ ɞɨɛɚɜɥɟɧɢɟɦ ɜ ɫɢɫɬɟɦɵ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɋɢ ɢ ɋɢ++ ɛɢɛɥɢɨɬɟɤ
ɮɭɧɤɰɢɣ, ɩɨɞɤɥɸɱɚɟɦɵɯ ɤ ɪɚɛɨɱɢɦ ɩɪɨɝɪɚɦɦɚɦ ɩɪɢ ɪɟɞɚɤɬɢɪɨɜɚɧɢɢ ɫɜɹ-
ɡɟɣ ɢ ɧɚɡɵɜɚɟɦɵɯ ɛɢɛɥɢɨɬɟɤɚɦɢ ɜɪɟɦɟɧɢ ɜɵɩɨɥɧɟɧɢɹ. Ɉɬɞɟɥɟɧɢɟ ɷɬɢɯ
ɛɢɛɥɢɨɬɟɤ ɨɬ ɤɨɦɩɢɥɹɬɨɪɚ ɩɨɡɜɨɥɹɟɬ ɜ ɧɟɨɛɯɨɞɢɦɵɯ ɫɥɭɱɚɹɯ ɢɫɩɨɥɶɡɨɜɚɬɶ
ɪɚɡɥɢɱɧɵɟ ɜɚɪɢɚɧɬɵ ɷɬɢɯ ɛɢɛɥɢɨɬɟɤ, ɧɚɩɪɢɦɟɪ, ɞɥɹ ɪɚɡɥɢɱɧɵɯ ɦɨɞɟɥɟɣ
ɗȼɆ ɢɥɢ ɨɩɟɪɚɰɢɨɧɧɵɯ ɫɢɫɬɟɦ.
ɑɚɫɬɶ ɮɭɧɤɰɢɣ ɢɡ ɛɢɛɥɢɨɬɟɤ ɜɪɟɦɟɧɢ ɜɵɩɨɥɧɟɧɢɹ ɫɬɚɧɞɚɪɬɢɡɨɜɚɧɚ, ɜ
ɫɬɚɧɞɚɪɬɟ ɡɚɮɢɤɫɢɪɨɜɚɧɵ ɢɦɹ ɮɭɧɤɰɢɢ, ɟɟ ɧɚɡɧɚɱɟɧɢɟ, ɩɟɪɟɱɟɧɶ ɢ ɬɢɩɵ
ɩɚɪɚɦɟɬɪɨɜ, ɚ ɬɚɤɠɟ ɬɢɩ ɜɨɡɜɪɚɳɚɟɦɨɝɨ ɡɧɚɱɟɧɢɹ. Ⱦɪɭɝɢɟ ɮɭɧɤɰɢɢ ɨɪɢɟɧ-
ɬɢɪɨɜɚɧɵ ɧɚ ɤɨɧɤɪɟɬɧɵɟ ɦɨɞɟɥɢ ɗȼɆ ɢ ɨɩɟɪɚɰɢɨɧɧɵɟ ɫɢɫɬɟɦɵ, ɫɩɨɫɨɛɵ
ɢɯ ɜɵɡɨɜɚ ɢ ɢɫɩɨɥɶɡɨɜɚɧɢɹ ɦɨɝɭɬ ɛɵɬɶ ɪɚɡɥɢɱɧɵɦɢ ɜ ɫɢɫɬɟɦɚɯ ɩɪɨɝɪɚɦ-
ɦɢɪɨɜɚɧɢɹ ɪɚɡɧɵɯ ɮɢɪɦ.
ɑɬɨɛɵ ɨɛɟɫɩɟɱɢɬɶ ɜɨɡɦɨɠɧɨɫɬɶ ɤɨɧɬɪɨɥɹ ɩɪɚɜɢɥɶɧɨɫɬɢ ɜɵɡɨɜɚ ɮɭɧɤ-
ɰɢɣ ɩɪɢ ɤɨɦɩɢɥɹɰɢɢ ɩɪɨɝɪɚɦɦɵ, ɜ ɫɢɫɬɟɦɭ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɜɯɨɞɹɬ
ɮɚɣɥɵ ɡɚɝɨɥɨɜɤɨɜ ɮɭɧɤɰɢɣ ɜɪɟɦɟɧɢ ɜɵɩɨɥɧɟɧɢɹ. ȼ ɮɚɣɥɚɯ ɡɚɝɨɥɨɜɤɨɜ ɨɩ-
ɪɟɞɟɥɹɸɬɫɹ ɩɪɨɬɨɬɢɩɵ ɛɢɛɥɢɨɬɟɱɧɵɯ ɮɭɧɤɰɢɣ, ɚ ɬɚɤɠɟ ɤɨɧɫɬɚɧɬɵ ɢ ɬɢɩɵ
ɞɚɧɧɵɯ, ɢɫɩɨɥɶɡɭɟɦɵɟ ɷɬɢɦɢ ɮɭɧɤɰɢɹɦɢ.
ɇɢɠɟ ɩɪɢɜɟɞɟɧɵ ɢɦɟɧɚ ɧɟɤɨɬɨɪɵɯ ɮɚɣɥɨɜ ɡɚɝɨɥɨɜɤɨɜ ɢ ɧɚɡɧɚɱɟɧɢɟ
ɨɩɢɫɚɧɧɵɯ ɜ ɧɢɯ ɩɪɨɬɨɬɢɩɨɜ ɝɪɭɩɩ ɮɭɧɤɰɢɣ.
ɋɬɚɧɞɚɪɬɨɦ ɋɢ ɨɩɪɟɞɟɥɟɧɵ ɫɥɟɞɭɸɳɢɟ ɮɚɣɥɵ ɡɚɝɨɥɨɜɤɨɜ:
ASSERT.H: ɫɨɞɟɪɠɢɬ ɦɚɤɪɨɫɵ ɞɥɹ ɫɨɨɛɳɟɧɢɣ ɨɛ ɨɲɢɛɤɚɯ ɩɪɢ ɜɵɩɨɥɧɟɧɢɢ
ɭɫɥɨɜɢɹ, ɡɚɞɚɜɚɟɦɨɝɨ ɩɪɨɝɪɚɦɦɢɫɬɨɦ.
CTYPE.H: ɮɭɧɤɰɢɢ ɞɥɹ ɩɪɨɜɟɪɤɢ ɢ ɩɪɟɨɛɪɚɡɨɜɚɧɢɹ ɞɚɧɧɵɯ ɬɢɩɚ char.
32
ɜɵɡɵɜɚɬɶ ɋɢ-ɩɪɨɝɪɚɦɦɵ ɢɡ ɤɨɦɚɧɞɧɨɣ ɫɬɪɨɤɢ MS DOS ɫ ɩɟɪɟɞɚɱɟɣ ɜ ɩɪɨ- ɝɪɚɦɦɭ ɧɟɨɛɯɨɞɢɦɵɯ ɚɪɝɭɦɟɧɬɨɜ. ɋɬɚɧɞɚɪɬɧɵɣ ɩɪɨɬɨɬɢɩ ɮɭɧɤɰɢɢ main ɢɦɟɟɬ ɜɢɞ. int main (int argc, char *argv[], char *envp[]) ȼ ɤɨɧɤɪɟɬɧɨɣ ɩɪɨɝɪɚɦɦɟ ɦɨɠɧɨ ɨɛɴɹɜɥɹɬɶ ɮɭɧɤɰɢɸ main ɛɟɡ ɜɨɡɜɪɚ- ɳɚɟɦɨɝɨ ɡɧɚɱɟɧɢɹ (ɜɨɡɜɪɚɳɚɸɳɭɸ ɬɢɩ void) ɫ ɢɫɩɨɥɶɡɨɜɚɧɢɟɦ ɬɨɥɶɤɨ ɞɜɭɯ ɩɟɪɜɵɯ ɩɚɪɚɦɟɬɪɨɜ ɢɥɢ ɜɨɨɛɳɟ ɛɟɡ ɩɚɪɚɦɟɬɪɨɜ. ɉɚɪɚɦɟɬɪɵ argc ɢ argv ɫɥɭɠɚɬ ɞɥɹ ɩɟɪɟɞɚɱɢ ɜ ɩɪɨɝɪɚɦɦɭ ɚɪɝɭɦɟɧɬɨɜ ɜ ɜɢɞɟ ɦɚɫɫɢɜɚ ɫɬɪɨɤ. ɉɚɪɚɦɟɬɪ argc ɫɨɞɟɪɠɢɬ ɱɢɫɥɨ ɷɥɟɦɟɧɬɨɜ ɷɬɨɝɨ ɦɚɫɫɢɜɚ, argv - ɷɬɨ ɦɚɫɫɢɜ ɭɤɚɡɚɬɟɥɟɣ ɧɚ ɩɟɪɟɞɚɜɚɟɦɵɟ ɫɬɪɨɤɢ, ɩɪɢɱɟɦ ɩɟɪɜɵɣ ɷɥɟɦɟɧɬ ɦɚɫɫɢɜɚ, ɧɚ ɤɨɬɨɪɵɣ ɭɤɚɡɵɜɚɟɬ argv[0], ɫɨɞɟɪɠɢɬ ɢɦɹ ɩɪɨɝɪɚɦɦɵ (ɢɦɹ exe-ɮɚɣɥɚ ɩɪɨɝɪɚɦɦɵ), ɨɫɬɚɥɶɧɵɟ ɷɥɟɦɟɧɬɵ ɩɪɟɞɫɬɚɜɥɹɸɬ ɫɨɛɨɣ ɚɪɝɭɦɟɧɬɵ ɢɡ ɤɨ- ɦɚɧɞɧɨɣ ɫɬɪɨɤɢ MS DOS. ɉɚɪɚɦɟɬɪ envp ɢɫɩɨɥɶɡɭɟɬɫɹ ɞɥɹ ɞɨɫɬɭɩɚ ɤ ɷɥɟ- ɦɟɧɬɚɦ ɬɟɤɭɳɟɣ ɫɪɟɞɵ MS DOS. 2.7. Ȼɢɛɥɢɨɬɟɤɚ ɜɪɟɦɟɧɢ ɜɵɩɨɥɧɟɧɢɹ ȼ ɨɩɪɟɞɟɥɟɧɢɢ ɹɡɵɤɨɜ ɋɢ ɢ ɋɢ++ ɨɬɫɭɬɫɬɜɭɸɬ ɨɩɟɪɚɬɨɪɵ ɜɜɨɞɚ- ɜɵɜɨɞɚ, ɨɩɟɪɚɰɢɢ ɧɚɞ ɫɬɪɨɤɨɜɵɦɢ ɞɚɧɧɵɦɢ ɢ ɦɧɨɝɢɟ ɞɪɭɝɢɟ ɫɪɟɞɫɬɜɚ, ɢɦɟɸɳɢɟɫɹ ɜ ɞɪɭɝɢɯ ɹɡɵɤɚɯ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ. ɗɬɨɬ ɧɟɞɨɫɬɚɬɨɤ ɤɨɦɩɟɧ- ɫɢɪɭɟɬɫɹ ɞɨɛɚɜɥɟɧɢɟɦ ɜ ɫɢɫɬɟɦɵ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɋɢ ɢ ɋɢ++ ɛɢɛɥɢɨɬɟɤ ɮɭɧɤɰɢɣ, ɩɨɞɤɥɸɱɚɟɦɵɯ ɤ ɪɚɛɨɱɢɦ ɩɪɨɝɪɚɦɦɚɦ ɩɪɢ ɪɟɞɚɤɬɢɪɨɜɚɧɢɢ ɫɜɹ- ɡɟɣ ɢ ɧɚɡɵɜɚɟɦɵɯ ɛɢɛɥɢɨɬɟɤɚɦɢ ɜɪɟɦɟɧɢ ɜɵɩɨɥɧɟɧɢɹ. Ɉɬɞɟɥɟɧɢɟ ɷɬɢɯ ɛɢɛɥɢɨɬɟɤ ɨɬ ɤɨɦɩɢɥɹɬɨɪɚ ɩɨɡɜɨɥɹɟɬ ɜ ɧɟɨɛɯɨɞɢɦɵɯ ɫɥɭɱɚɹɯ ɢɫɩɨɥɶɡɨɜɚɬɶ ɪɚɡɥɢɱɧɵɟ ɜɚɪɢɚɧɬɵ ɷɬɢɯ ɛɢɛɥɢɨɬɟɤ, ɧɚɩɪɢɦɟɪ, ɞɥɹ ɪɚɡɥɢɱɧɵɯ ɦɨɞɟɥɟɣ ɗȼɆ ɢɥɢ ɨɩɟɪɚɰɢɨɧɧɵɯ ɫɢɫɬɟɦ. ɑɚɫɬɶ ɮɭɧɤɰɢɣ ɢɡ ɛɢɛɥɢɨɬɟɤ ɜɪɟɦɟɧɢ ɜɵɩɨɥɧɟɧɢɹ ɫɬɚɧɞɚɪɬɢɡɨɜɚɧɚ, ɜ ɫɬɚɧɞɚɪɬɟ ɡɚɮɢɤɫɢɪɨɜɚɧɵ ɢɦɹ ɮɭɧɤɰɢɢ, ɟɟ ɧɚɡɧɚɱɟɧɢɟ, ɩɟɪɟɱɟɧɶ ɢ ɬɢɩɵ ɩɚɪɚɦɟɬɪɨɜ, ɚ ɬɚɤɠɟ ɬɢɩ ɜɨɡɜɪɚɳɚɟɦɨɝɨ ɡɧɚɱɟɧɢɹ. Ⱦɪɭɝɢɟ ɮɭɧɤɰɢɢ ɨɪɢɟɧ- ɬɢɪɨɜɚɧɵ ɧɚ ɤɨɧɤɪɟɬɧɵɟ ɦɨɞɟɥɢ ɗȼɆ ɢ ɨɩɟɪɚɰɢɨɧɧɵɟ ɫɢɫɬɟɦɵ, ɫɩɨɫɨɛɵ ɢɯ ɜɵɡɨɜɚ ɢ ɢɫɩɨɥɶɡɨɜɚɧɢɹ ɦɨɝɭɬ ɛɵɬɶ ɪɚɡɥɢɱɧɵɦɢ ɜ ɫɢɫɬɟɦɚɯ ɩɪɨɝɪɚɦ- ɦɢɪɨɜɚɧɢɹ ɪɚɡɧɵɯ ɮɢɪɦ. ɑɬɨɛɵ ɨɛɟɫɩɟɱɢɬɶ ɜɨɡɦɨɠɧɨɫɬɶ ɤɨɧɬɪɨɥɹ ɩɪɚɜɢɥɶɧɨɫɬɢ ɜɵɡɨɜɚ ɮɭɧɤ- ɰɢɣ ɩɪɢ ɤɨɦɩɢɥɹɰɢɢ ɩɪɨɝɪɚɦɦɵ, ɜ ɫɢɫɬɟɦɭ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɜɯɨɞɹɬ ɮɚɣɥɵ ɡɚɝɨɥɨɜɤɨɜ ɮɭɧɤɰɢɣ ɜɪɟɦɟɧɢ ɜɵɩɨɥɧɟɧɢɹ. ȼ ɮɚɣɥɚɯ ɡɚɝɨɥɨɜɤɨɜ ɨɩ- ɪɟɞɟɥɹɸɬɫɹ ɩɪɨɬɨɬɢɩɵ ɛɢɛɥɢɨɬɟɱɧɵɯ ɮɭɧɤɰɢɣ, ɚ ɬɚɤɠɟ ɤɨɧɫɬɚɧɬɵ ɢ ɬɢɩɵ ɞɚɧɧɵɯ, ɢɫɩɨɥɶɡɭɟɦɵɟ ɷɬɢɦɢ ɮɭɧɤɰɢɹɦɢ. ɇɢɠɟ ɩɪɢɜɟɞɟɧɵ ɢɦɟɧɚ ɧɟɤɨɬɨɪɵɯ ɮɚɣɥɨɜ ɡɚɝɨɥɨɜɤɨɜ ɢ ɧɚɡɧɚɱɟɧɢɟ ɨɩɢɫɚɧɧɵɯ ɜ ɧɢɯ ɩɪɨɬɨɬɢɩɨɜ ɝɪɭɩɩ ɮɭɧɤɰɢɣ. ɋɬɚɧɞɚɪɬɨɦ ɋɢ ɨɩɪɟɞɟɥɟɧɵ ɫɥɟɞɭɸɳɢɟ ɮɚɣɥɵ ɡɚɝɨɥɨɜɤɨɜ: ASSERT.H: ɫɨɞɟɪɠɢɬ ɦɚɤɪɨɫɵ ɞɥɹ ɫɨɨɛɳɟɧɢɣ ɨɛ ɨɲɢɛɤɚɯ ɩɪɢ ɜɵɩɨɥɧɟɧɢɢ ɭɫɥɨɜɢɹ, ɡɚɞɚɜɚɟɦɨɝɨ ɩɪɨɝɪɚɦɦɢɫɬɨɦ. CTYPE.H: ɮɭɧɤɰɢɢ ɞɥɹ ɩɪɨɜɟɪɤɢ ɢ ɩɪɟɨɛɪɚɡɨɜɚɧɢɹ ɞɚɧɧɵɯ ɬɢɩɚ char. 32
Страницы
- « первая
- ‹ предыдущая
- …
- 30
- 31
- 32
- 33
- 34
- …
- следующая ›
- последняя »