NOOB玩家 发表于 2022-2-25 14:12

C语言结构体的赋值与判断问题

x.c y.c z.h三个文件 ,在.h里定义一个结构体 ,在x里给其赋值,在y里用赋值后的结构体进行判断
要怎么做?
//z.h
typedef struct {
UINT32NX_test;
} NX_State;

michiless 发表于 2022-2-25 14:33

可以了解一下extern   

NOOB玩家 发表于 2022-2-25 14:50

michiless 发表于 2022-2-25 14:33
可以了解一下extern

我半吊子,试过用extern关键字,在x里赋值后,还是只有初始化的值传递到y里面

hlqzy 发表于 2022-2-25 15:49

全部用extern声明外部变量就可以调用了呀 应该是你赋值或判断问题

NOOB玩家 发表于 2022-2-25 15:56

hlqzy 发表于 2022-2-25 15:49
全部用extern声明外部变量就可以调用了呀 应该是你赋值或判断问题

能简单写一下,让我参考参考

Eaglecad 发表于 2022-2-25 19:25

X里全局声明,赋值,y里extern

xuysss 发表于 2022-2-25 19:52

学习 学习了解下

A学习的小菜鸟 发表于 2022-3-13 12:29

可以添加一个class,然后在每个文件里面加上头文件,extern有时候出现不知名的问题

NOOB玩家 发表于 2022-3-13 20:09

最后通过写端口解决问题了

ZheCi 发表于 2022-3-14 19:42

=====test.h====

    #ifndef _TEST_H_
   
    #define _TEST_H_
   
    extern int a; //声明
   
    void jisuan(int b); //函数声明
   
    #endif



====test.cpp===

    #include<iostream>
   
    using namespace std;
   
    int a = 0 ; //定义
   
   
    void jisuan(int b) //定义
   
    {
   
    a += b;
   
    cout << "test.cpp:"<<a<<endl;
   
    }

====main.cpp===

    #include <iostream>
   
    #include"test.h"
   
    using namespace std;
   
   
    //extern int a = 8; 错误,不能多次定义这个全局变量a
   
    //extern int a ; //包含了头文件,变量和函数则不需要再次声明,也可以声明变量,表示其是引用
   
    //extern void jisuan(int);
   
    int main(int argc, char** argv) {
   
    jisuan(2);
   
    cout << "main:" << a<<endl;
   
    int a = 7; //定义局部变量a
   
    cout << "main:" << a<<endl;
   
    return 0;
   
    }
页: [1]
查看完整版本: C语言结构体的赋值与判断问题