为什么我的函数没有被调用?我不明白为什么需要声明

Why isn't my function invoked? I don't understand why a declaration is expected

大家好,

这是我的代码:

main.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "sqlite3.h"
#include "db_typedefs.h"
#include "operations.h"
int main(){
    printf("Text\n");
    int f = 3;
    void add_mini(3);
}

operations.h

#ifndef ADD_OPERATIONS_H_INCLUDED
#define ADD_OPERATIONS_H_INCLUDED

void add_mini(int flag);
#endif // ADD_OPERATIONS_H_INCLUDED

operations.c

void add_mini(int flag)
{
    int rc;
    rc = flag;
    printf("%i\n", rc);
}

Operations.c 也包含类似于 main.c.

的库

编译器错误

error: expected declaration specifiers or '...' before numeric constant

关于作废 add_mini(3)

我好像无法传递简单的整数值。在调试时它甚至跳过 add_mini 行。 你知道发生了什么事吗?


整个代码嵌入了一个更大的查询以确定输入的订单,但这工作正常。我只是不能传递这个简单的整数值。

提前致谢。

像这样调用函数:add_mini(3); 而不是 void add_mini(3);

从 main.c 中删除用于调用 add_mini 的单词 void :

add_mini(3);

或者

(void)add_mini(3);

当你使用

void add_mini(3);

编译器认为是函数声明,不是函数调用。参数 3 对函数声明无效。因此,编译器会报错。

删除 void 部分以调用函数。

int main(){
    printf("Text\n");
    int f = 3;
    add_mini(3);
}

或者,由于您已将 f 初始化为 3

int main(){
    printf("Text\n");
    int f = 3;
    add_mini(f);
}