Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C “移动”;MYSQL*康涅狄格州&引用;至;外部。h";?_C - Fatal编程技术网

C “移动”;MYSQL*康涅狄格州&引用;至;外部。h";?

C “移动”;MYSQL*康涅狄格州&引用;至;外部。h";?,c,C,我能够将MySQL的某些内容移动到外部.h #define server "localhost" #define user "root" #define pass "" #define db "a" MYEXTERN MYSQL *conn; MYEXTERN MYSQL_RES *res; MYEXTERN MYSQL_ROW row; 外部 #define server "localhost" #define user "root" #define pass "" #define db

我能够将MySQL的某些内容移动到外部.h

#define server "localhost"
#define user "root"
#define pass ""
#define db "a"
MYEXTERN MYSQL *conn;
MYEXTERN MYSQL_RES *res;
MYEXTERN MYSQL_ROW row;
外部

#define server "localhost"
#define user "root"
#define pass ""
#define db "a"
MYEXTERN MYSQL *conn;
MYEXTERN MYSQL_RES *res;
MYEXTERN MYSQL_ROW row;
我还想把这些移到那里:

MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
conn = mysql_init(NULL);
这是我当前的工作脚本

脚本.c

#include <stdio.h>
#include <string.h>
#include <fcgi_stdio.h>
#include <stdlib.h>
#include <mysql.h>
#include "external.h"

int main() {

bool x;

MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
conn = mysql_init(NULL);

x = mysql_real_connect(conn, server, user, pass, db, 0, NULL, 0);
if (x==1){
    printf("connected");
}

到external.h?

您可以在头文件中将全局变量声明为:

外部

#define server "localhost"
#define user "root"
#define pass ""
#define db "a"
MYEXTERN MYSQL *conn;
MYEXTERN MYSQL_RES *res;
MYEXTERN MYSQL_ROW row;
在script.c中,您将包括external.h作为

#define MYEXTERN
#include "external.h"
在所有其他的c文件中,比如说other.c,你将把它作为

#define MYEXTERN extern
#include "external.h"
因此,在其他.c中,您的全局变量被声明为extern,这样您将在头文件中声明您的全局变量,但当您将变量包含在多个对象中时,您将不会得到重新定义变量的错误


不能将MYSQL*conn=MYSQL_init(NULL)放入;在头文件中,由于编译器希望在全局变量初始化期间为其分配常量,所以应该将其保存在主函数或您可能要定义的任何其他初始值设定项函数中。

不要在头文件中定义变量。这既危险又没用。嗯,我记得我今天…
#定义pass”“
-你是认真的吗??硬编码密码是绝对不允许的!