C语言中文件在调用函数时无反回值时上一次文件中的内容会改变吗
时间: 2023-02-06 20:52:17 浏览: 91
在 C 语言中,调用函数是不会改变文件中的内容的。文件中的内容只有在你明确地使用文件操作函数来读写文件时才会改变。
例如,你可以使用 `fopen` 函数打开一个文件,然后使用 `fwrite` 函数向文件写入数据,这样就可以改变文件中的内容。但是,如果你只是调用了普通的函数,而没有使用文件操作函数,那么文件中的内容是不会改变的。
所以,在 C 语言中,调用函数时无反回值时上一次文件中的内容不会改变。
相关问题
c语言在在一个文件中调用另一个文件中定义的函数
要在一个文件中调用另一个文件中定义的函数,需要使用函数声明和extern关键字。具体步骤如下:
1. 在调用函数的文件中,添加函数声明。函数声明包括函数名、参数类型和返回值类型。例如,如果要调用另一个文件中的函数foo,可以在调用文件中添加以下声明:
```
extern int foo(int arg1, float arg2);
```
2. 将需要调用的函数所在的文件编译成目标文件(例如,foo.c编译成foo.o)。
3. 将调用函数的文件与目标文件一起编译成可执行文件。例如,如果调用文件为main.c,可以使用以下命令进行编译:
```
gcc main.c foo.o -o myprogram
```
4. 运行可执行文件。
注意,如果多个文件都需要调用同一个函数,可以将函数声明放在一个头文件中,然后在调用文件中包含头文件即可。
C语言调用另一个文件中的函数
要在C语言中调用另一个文件中的函数,需要先在调用文件中声明该函数。声明的方式为在调用文件中使用函数原型,其中包括函数名称、参数类型和返回值类型。然后在编译时将调用文件和被调用文件一起编译成可执行文件。在链接时,编译器会将调用文件中的函数调用与被调用文件中的函数实现进行链接。
例如,如果有一个名为 "test.c" 的文件,其中调用了 "func.c" 文件中的函数 "add",则 "test.c" 文件中需要添加以下代码来声明 "add" 函数:
```c
int add(int a, int b);
```
然后在 "test.c" 文件中就可以调用 "add" 函数了:
```c
int c = add(1, 2);
```
编译时需要将 "test.c" 和 "func.c" 文件一起编译:
```
gcc test.c func.c -o test
```
注意,如果 "func.c" 文件中的函数没有被调用,编译器可能会将其优化掉,导致链接失败。因此,需要确保 "func.c" 文件中的函数被调用。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)