zoukankan      html  css  js  c++  java
  • 结构体变量的 extern 使用方法,转--

    要求如下,在.h文件中这样定义:

    typedef struct typFNT_GB16       // 汉字字模数据结构
    {
        signed char Index[2];        // 汉字内码索引
        char Msk[32];                // 点阵码数据
    };
     
    struct typFNT_GB16 code GB_16[] =     // 数据表
    {
        0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,
        0xFF,0x20,0x22,0xAC,0x20,0x30,0x20,0x00,
        0x00,0x08,0x48,0x84,0x7F,0x02,0x21,0x10,
        0x09,0x06,0x1A,0x61,0x80,0xE0,0x00,0x00,
        0x40,0x20,0xF8,0x07,0x00,0xF8,0x02,0x04,
        0x08,0x04,0x04,0x04,0x04,0xFE,0x04,0x00,
        0x00,0x00,0xFF,0x00,0x00,0xFF,0x00,0x00,
        0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00
    };

    同时需要在多个.c文件中使用该struct, 但是多次include 该.h文件提示重复定义,应该修改如下:


    新建一个xx.h和xx.c文件

    在xx.h文件中定义该结构体,同时对结构体变量作extern:

    typedef struct typFNT_GB16          // 汉字字模数据结构
    {
        signed char Index[2];           // 汉字内码索引
        char Msk[32];                   // 点阵码数据
    };
     
    extern struct typFNT_GB16 code GB_16[];

    在xx.c文件中include该.h文件,同时作结构体变量的初始化:

    #include "xx.h"

    struct typFNT_GB16 code GB_16[] =         // 数据表
    {
        0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,
        0xFF,0x20,0x22,0xAC,0x20,0x30,0x20,0x00,
        0x00,0x08,0x48,0x84,0x7F,0x02,0x21,0x10,
        0x09,0x06,0x1A,0x61,0x80,0xE0,0x00,0x00,
        0x40,0x20,0xF8,0x07,0x00,0xF8,0x02,0x04,
        0x08,0x04,0x04,0x04,0x04,0xFE,0x04,0x00,
        0x00,0x00,0xFF,0x00,0x00,0xFF,0x00,0x00,
        0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00
    };

    在其它.c文件中需要使用该结构体时,直接include .h文件即可这样编译通过。实际上结构体是一种数据类型,.h文件定义了一种类型的结构体,并声明为extern形式允许外部调用它,而初始化code GB_16[] 这个结构体应当在.c文件中进行。

  • 相关阅读:
    make输出全部重定向到文件
    python selenium-webdriver 元素定位(三)
    通过vmware 启动cloudera-quickstart-vm-5.10.0-0-vmware.zip镜像无法启动。
    编写第一个python selenium-webdriver程序(二)
    sublime Text3 新建文件时定义模块
    python selenium-webdriver 环境搭建(一)
    gitlab 添加SSH Key
    python 使用 'python -m pip install --upgrade pip'提示PermissionError: [WinError 5] 拒绝访问
    bitnami gitlab 配置域名
    bitnami gitlab 安装
  • 原文地址:https://www.cnblogs.com/hjj-fighting/p/10510028.html
Copyright © 2011-2022 走看看