1编写简单的c程序,功能为在屏幕上输出“Hello gcc!”。利用该程序联系使用gcc编译器的E、S、c、o、g选项。观察不同阶段所生成的文件。 2.编写一个由头文件greeting.h、自定义函数文件greeting.c、主函数文件myapp.实验分析
时间: 2024-11-09 16:26:46 浏览: 39
GCC-help.rar_Help!_gcc_gcc help_gcc-source_编译器
首先,让我们分步骤地创建一个简单的C程序,并结合gcc编译器的不同选项:
1. **创建Hello gcc! 程序**:
```c
// greeting.c 文件
#include <stdio.h>
void print_hello_gcc() {
printf("Hello gcc!\n");
}
int main() {
print_hello_gcc();
return 0;
}
```
**步骤一**: 使用`gcc -o my_program greeting.c` 这样编译会生成一个名为`my_program`的可执行文件,这里gcc默认选择了c标准。
**步骤二**: 如果想查看编译过程中的信息,可以加上 `-E` 或 `-S` 选项:
- `gcc -E greeting.c` 会给出预处理后的结果(仅保留宏展开)
- `gcc -S greeting.c` 将会生成汇编代码
**步骤三**: 如果你想看到优化过的机器码,使用 `-O1`, `-O2`, `-O3` (从低到高) 或 `-Os` (更小的优化空间换速度),例如 `gcc -O2 greeting.c -o optimized_my_program`。
接下来是关于第二个部分,涉及头文件、自定义函数和主函数的结构:
2. **编写程序组件**:
- **greeting.h**(头文件):
```c
#ifndef GREETING_H
#define GREETING_H
void greet(const char* message);
#endif // GREETING_H
```
- **greeting.c**(包含函数实现):
```c
#include "greeting.h"
void greet(const char* message) {
printf("%s\n", message);
}
```
- **myapp.c**(主函数文件):
```c
#include "greeting.h"
#include <stdio.h>
int main() {
greet("Hello gcc!");
return 0;
}
```
**实验分析**:
- 将三个文件链接起来,你可以使用`gcc -o main myapp.c greeting.c` 来编译并生成可执行文件。
- 更改`greet` 函数名或消息,只需更新`greeting.h` 和`greeting.c`,这体现了函数的封装和多态性。
阅读全文