C用户定义的功能问题

C用户定义的功能问题,c,sqlite,function,C,Sqlite,Function,我正在用C测试sqlite3,我决定制作一个简单的程序,从函数的输入中获取用户名和密码,并将其传递到sqlite3数据库表中。我的问题是,每当我提到我在代码中任何地方编写的函数时,每次提到都会出现如下错误: error: expected identifier or ‘(’ before ‘register’ void *register(const char *u,const char *p) 这是我的密码: #include<stdio.h> #include<stri

我正在用
C
测试
sqlite3
,我决定制作一个简单的程序,从函数的输入中获取用户名和密码,并将其传递到
sqlite3
数据库表中。我的问题是,每当我提到我在代码中任何地方编写的函数时,每次提到都会出现如下错误:

error: expected identifier or ‘(’ before ‘register’
 void *register(const char *u,const char *p)
这是我的密码:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<sqlite3.h>

void register(const char *u,const char *p)
{
 printf("Enter your desired username: \n");
 scanf("%s", u);
 printf("Enter your desired password: \n");
 scanf("%s", p);    
}


int main()
{
const char new_user[50];
const char new_pass[50];
sqlite3 *db;
sqlite3_stmt *stmt;
int rc = sqlite3_open("test.db", &db);
if(rc != SQLITE_OK)
{
    fprintf(stderr, "Problem opening Database: %s\n", sqlite3_errmsg(db));
    return 0;
}


char *sql = "INSERT INTO Users VALUES(?, ?, '0335804828', 'Strada userului nr 9', NULL, 0);";
rc = sqlite3_prepare_v2(db, sql, -1, &stmt, 0);

 if (rc == SQLITE_OK) 
{        
    sqlite3_bind_text(stmt, 1, "blala", -1, SQLITE_STATIC);
    sqlite3_bind_text(stmt, 2, "blabla", -1, SQLITE_STATIC);
} 
else 
{        
        fprintf(stderr, "Failed to execute statement: %s\n", sqlite3_errmsg(db));
    }

return 0;
}
#包括
#包括
#包括
#包括
无效寄存器(常量字符*u,常量字符*p)
{
printf(“输入所需用户名:\n”);
scanf(“%s”,u);
printf(“输入所需密码:\n”);
scanf(“%s”,p);
}
int main()
{
const char new_user[50];
const char new_pass[50];
sqlite3*db;
sqlite3_stmt*stmt;
int rc=sqlite3_open(“test.db”和&db);
如果(rc!=SQLITE_OK)
{
fprintf(stderr,“打开数据库时出现问题:%s\n”,sqlite3_errmsg(db));
返回0;
}
char*sql=“插入用户值(?,'0335804828','Strada userului nr 9',NULL,0);”;
rc=sqlite3\u prepare\u v2(db,sql,-1,&stmt,0);
如果(rc==SQLITE_OK)
{        
sqlite3_绑定_文本(stmt,1,“blala”,-1,SQLITE_静态);
sqlite3绑定文本(stmt,2,“blabla”,-1,SQLITE静态);
} 
其他的
{        
fprintf(stderr,“未能执行语句:%s\n”,sqlite3_errmsg(db));
}
返回0;
}
正如您所看到的,代码尚未完成,但由于上述错误,它没有编译。 我寻找过类似的答案,但在我的案例中没有任何效果。我尝试过更改函数及其类型,但没有任何效果。

。不能使用关键字作为名称

两个问题。您使用
register
作为函数名,但不能使用C关键字

更改名称时,函数参数是错误的
const char*u
表示“u”引用的字节是
const
,不能更改

void foo(char *u,char *p);
或者如果指针没有改变

void foo(char * const u,char * const p);

@当然是某个程序员。。。我真傻。。另一个问题是将指向常量字符的指针传递给函数。这意味着您不能修改数组的内容(比如在
scanf
中将它们用作目标)。@Someprogrammerdude我的另一个问题是sqlite3_bind_文本使用const char*作为实际参数传递以插入表中。。
void foo(char * const u,char * const p);