【问题标题】:Variables defined but not used for entire project已定义但未用于整个项目的变量
【发布时间】:2019-11-10 18:34:10
【问题描述】:

突然,在为我的项目重写库时,为项目中的所有库声明的所有静态变量都给出了一个警告,表示已定义但未使用。即使它有警卫,我也会在标头内多次定义变量时遇到错误。有没有解决这些问题的通用方法?我已经尝试了一段时间,但它没有帮助。

我已尝试通过排除库/部分代码来跟踪问题,但问题仍然存在。

多定义部分代码的标头:

/*
 * fonts.h
 *
 * Library of fonts
 * Large: 8x8, normal: 5x7 and small: 4x7
 */
#ifndef FONTS_H_
#define FONTS_H_

#include <avr/pgmspace.h>

// Font 8x8 - Large
const unsigned char PROGMEM font8[95][8] = {
    {0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000}, //
    {0b00000000,0b00000110,0b01011111,0b01011111,0b00000110,0b00000000,0b00000000,0b00000000}, // !
    {0b00000000,0b00000111,0b00000111,0b00000000,0b00000111,0b00000111,0b00000000,0b00000000}, // "
    {0b00010100,0b01111111,0b01111111,0b00010100,0b01111111,0b01111111,0b00010100,0b00000000}, // #
    {0b00100100,0b00101110,0b01101011,0b01101011,0b00111010,0b00010010,0b00000000,0b00000000}, // $
    {0b01000110,0b01100110,0b00110000,0b00011000,0b00001100,0b01100110,0b01100010,0b00000000}, // %
    {0b00110000,0b01111010,0b01001111,0b01011101,0b00110111,0b01111010,0b01001000,0b00000000}, // &
    {0b00000100,0b00000111,0b00000011,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000}, // '
    {0b00000000,0b00011100,0b00111110,0b01100011,0b01000001,0b00000000,0b00000000,0b00000000}, // (
    {0b00000000,0b01000001,0b01100011,0b00111110,0b00011100,0b00000000,0b00000000,0b00000000}, // )
    {0b00001000,0b00101010,0b00111110,0b00011100,0b00011100,0b00111110,0b00101010,0b00001000}, // *
    {0b00001000,0b00001000,0b00111110,0b00111110,0b00001000,0b00001000,0b00000000,0b00000000}, // +
    {0b00000000,0b10100000,0b11100000,0b01100000,0b00000000,0b00000000,0b00000000,0b00000000}, // ,
    {0b00001000,0b00001000,0b00001000,0b00001000,0b00001000,0b00001000,0b00000000,0b00000000}, // -
    {0b00000000,0b00000000,0b01100000,0b01100000,0b00000000,0b00000000,0b00000000,0b00000000}, // .
    {0b01100000,0b00110000,0b00011000,0b00001100,0b00000110,0b00000011,0b00000001,0b00000000}, // /
    {0b00111110,0b01111111,0b01011001,0b01001101,0b01111111,0b00111110,0b00000000,0b00000000}, // 0
    {0b01000010,0b01000010,0b01111111,0b01111111,0b01000000,0b01000000,0b00000000,0b00000000}, // 1
    {0b01100010,0b01110011,0b01011001,0b01001001,0b01101111,0b01100110,0b00000000,0b00000000}, // 2
    {0b00100010,0b01100011,0b01001001,0b01001001,0b01111111,0b00110110,0b00000000,0b00000000}, // 3
    {0b00011000,0b00011100,0b00010110,0b00010011,0b01111111,0b01111111,0b00010000,0b00000000}, // 4
    {0b00100111,0b01100111,0b01000101,0b01000101,0b01111101,0b00111001,0b00000000,0b00000000}, // 5
    {0b00111100,0b01111110,0b01001011,0b01001001,0b01111001,0b00110000,0b00000000,0b00000000}, // 6
    {0b00000011,0b01100011,0b01110001,0b00011001,0b00001111,0b00000111,0b00000000,0b00000000}, // 7
    {0b00110110,0b01111111,0b01001001,0b01001001,0b01111111,0b00110110,0b00000000,0b00000000}, // 8
    {0b00000110,0b01001111,0b01001001,0b01101001,0b00111111,0b00011110,0b00000000,0b00000000}, // 9
    {0b00000000,0b00000000,0b01101100,0b01101100,0b00000000,0b00000000,0b00000000,0b00000000}, // :
    {0b00000000,0b10100000,0b11101100,0b01101100,0b00000000,0b00000000,0b00000000,0b00000000}, // ;
    {0b00001000,0b00011100,0b00110110,0b01100011,0b01000001,0b00000000,0b00000000,0b00000000}, // <
    {0b00010100,0b00010100,0b00010100,0b00010100,0b00010100,0b00010100,0b00000000,0b00000000}, // =
    {0b00000000,0b01000001,0b01100011,0b00110110,0b00011100,0b00001000,0b00000000,0b00000000}, // >
    {0b00000010,0b00000011,0b01010001,0b01011001,0b00001111,0b00000110,0b00000000,0b00000000}, // ?
    {0b00111110,0b01111111,0b01000001,0b01011101,0b01011101,0b00011111,0b00011110,0b00000000}, // @
    {0b01111100,0b01111110,0b00010011,0b00010011,0b01111110,0b01111100,0b00000000,0b00000000}, // A
    {0b01000001,0b01111111,0b01111111,0b01001001,0b01001001,0b01111111,0b00110110,0b00000000}, // B
    {0b00011100,0b00111110,0b01100011,0b01000001,0b01000001,0b01100011,0b00100010,0b00000000}, // C
    {0b01000001,0b01111111,0b01111111,0b01000001,0b01100011,0b01111111,0b00011100,0b00000000}, // D
    {0b01000001,0b01111111,0b01111111,0b01001001,0b01011101,0b01000001,0b01100011,0b00000000}, // E
    {0b01000001,0b01111111,0b01111111,0b01001001,0b00011101,0b00000001,0b00000011,0b00000000}, // F
    {0b00011100,0b00111110,0b01100011,0b01000001,0b01010001,0b01110011,0b01110010,0b00000000}, // G
    {0b01111111,0b01111111,0b00001000,0b00001000,0b01111111,0b01111111,0b00000000,0b00000000}, // H
    {0b00000000,0b01000001,0b01111111,0b01111111,0b01000001,0b00000000,0b00000000,0b00000000}, // I
    {0b00110000,0b01110000,0b01000000,0b01000001,0b01111111,0b00111111,0b00000001,0b00000000}, // J
    {0b01000001,0b01111111,0b01111111,0b00001000,0b00011100,0b01110111,0b01100011,0b00000000}, // K
    {0b01000001,0b01111111,0b01111111,0b01000001,0b01000000,0b01100000,0b01110000,0b00000000}, // L
    {0b01111111,0b01111111,0b00000110,0b00001100,0b00000110,0b01111111,0b01111111,0b00000000}, // M
    {0b01111111,0b01111111,0b00000110,0b00001100,0b00011000,0b01111111,0b01111111,0b00000000}, // N
    {0b00011100,0b00111110,0b01100011,0b01000001,0b01100011,0b00111110,0b00011100,0b00000000}, // O
    {0b01000001,0b01111111,0b01111111,0b01001001,0b00001001,0b00001111,0b00000110,0b00000000}, // P
    {0b00011110,0b00111111,0b00100001,0b01110001,0b01111111,0b01011110,0b00000000,0b00000000}, // Q
    {0b01000001,0b01111111,0b01111111,0b00011001,0b00111001,0b01101111,0b01000110,0b00000000}, // R
    {0b00100110,0b01100111,0b01001101,0b01011001,0b01111011,0b00110010,0b00000000,0b00000000}, // S
    {0b00000011,0b01000001,0b01111111,0b01111111,0b01000001,0b00000011,0b00000000,0b00000000}, // T
    {0b01111111,0b01111111,0b01000000,0b01000000,0b01111111,0b01111111,0b00000000,0b00000000}, // U
    {0b00011111,0b00111111,0b01100000,0b01100000,0b00111111,0b00011111,0b00000000,0b00000000}, // V
    {0b01111111,0b01111111,0b00110000,0b00011000,0b00110000,0b01111111,0b01111111,0b00000000}, // W
    {0b01100011,0b01110111,0b00011100,0b00001000,0b00011100,0b01110111,0b01100011,0b00000000}, // X
    {0b00000111,0b01001111,0b01111000,0b01111000,0b01001111,0b00000111,0b00000000,0b00000000}, // Y
    {0b01100111,0b01110011,0b01011001,0b01001101,0b01000111,0b01100011,0b01110001,0b00000000}, // Z
    {0b00000000,0b01111111,0b01111111,0b01000001,0b01000001,0b00000000,0b00000000,0b00000000}, // [
    {0b00000001,0b00000011,0b00000110,0b00001100,0b00011000,0b00110000,0b01100000,0b00000000}, // "\"
    {0b00000000,0b01000001,0b01000001,0b01111111,0b01111111,0b00000000,0b00000000,0b00000000}, // ]
    {0b00001000,0b00001100,0b00000110,0b00000011,0b00000110,0b00001100,0b00001000,0b00000000}, // ^
    {0b10000000,0b10000000,0b10000000,0b10000000,0b10000000,0b10000000,0b10000000,0b10000000}, // _
    {0b00000000,0b00000000,0b00000011,0b00000111,0b00000100,0b00000000,0b00000000,0b00000000}, // `
    {0b00100000,0b01110100,0b01010100,0b01010100,0b00111100,0b01111000,0b01000000,0b00000000}, // a
    {0b01000001,0b00111111,0b01111111,0b01000100,0b01000100,0b01111100,0b00111000,0b00000000}, // b
    {0b00111000,0b01111100,0b01000100,0b01000100,0b01101100,0b00101000,0b00000000,0b00000000}, // c
    {0b00110000,0b01111000,0b01001000,0b01001001,0b00111111,0b01111111,0b01000000,0b00000000}, // d
    {0b00111000,0b01111100,0b01010100,0b01010100,0b01011100,0b00011000,0b00000000,0b00000000}, // e
    {0b01001000,0b01111110,0b01111111,0b01001001,0b00000011,0b00000010,0b00000000,0b00000000}, // f
    {0b10011000,0b10111100,0b10100100,0b10100100,0b11111000,0b01111100,0b00000100,0b00000000}, // g
    {0b01000001,0b01111111,0b01111111,0b00001000,0b00000100,0b01111100,0b01111000,0b00000000}, // h
    {0b00000000,0b01000100,0b01111101,0b01111101,0b01000000,0b00000000,0b00000000,0b00000000}, // i
    {0b01000000,0b11000100,0b10000100,0b11111101,0b01111101,0b00000000,0b00000000,0b00000000}, // j
    {0b01000001,0b01111111,0b01111111,0b00010000,0b00111000,0b01101100,0b01000100,0b00000000}, // k
    {0b00000000,0b01000001,0b01111111,0b01111111,0b01000000,0b00000000,0b00000000,0b00000000}, // l
    {0b01111100,0b01111100,0b00001100,0b00011000,0b00001100,0b01111100,0b01111000,0b00000000}, // m
    {0b01111100,0b01111100,0b00000100,0b00000100,0b01111100,0b01111000,0b00000000,0b00000000}, // n
    {0b00111000,0b01111100,0b01000100,0b01000100,0b01111100,0b00111000,0b00000000,0b00000000}, // o
    {0b10000100,0b11111100,0b11111000,0b10100100,0b00100100,0b00111100,0b00011000,0b00000000}, // p
    {0b00011000,0b00111100,0b00100100,0b10100100,0b11111000,0b11111100,0b10000100,0b00000000}, // q
    {0b01000100,0b01111100,0b01111000,0b01000100,0b00011100,0b00011000,0b00000000,0b00000000}, // r
    {0b01001000,0b01011100,0b01010100,0b01010100,0b01110100,0b00100100,0b00000000,0b00000000}, // s
    {0b00000000,0b00000100,0b00111110,0b01111111,0b01000100,0b00100100,0b00000000,0b00000000}, // t
    {0b00111100,0b01111100,0b01000000,0b01000000,0b00111100,0b01111100,0b01000000,0b00000000}, // u
    {0b00011100,0b00111100,0b01100000,0b01100000,0b00111100,0b00011100,0b00000000,0b00000000}, // v
    {0b00111100,0b01111100,0b01100000,0b00110000,0b01100000,0b01111100,0b00111100,0b00000000}, // w
    {0b01000100,0b01101100,0b00111000,0b00010000,0b00111000,0b01101100,0b01000100,0b00000000}, // x
    {0b10011100,0b10111100,0b10100000,0b10100000,0b11111100,0b01111100,0b00000000,0b00000000}, // y
    {0b01001100,0b01100100,0b01110100,0b01011100,0b01001100,0b01100100,0b00000000,0b00000000}, // z
    {0b00001000,0b00001000,0b00111110,0b01110111,0b01000001,0b01000001,0b00000000,0b00000000}, // {
    {0b00000000,0b00000000,0b00000000,0b01110111,0b01110111,0b00000000,0b00000000,0b00000000}, // |
    {0b01000001,0b01000001,0b01110111,0b00111110,0b00001000,0b00001000,0b00000000,0b00000000}, // }
    {0b00000010,0b00000011,0b00000001,0b00000011,0b00000010,0b00000011,0b00000001,0b00000000}, // ~
};

// Font 5x7 - normal
const unsigned char PROGMEM font5[95][5] = {
    {0b00000000,0b00000000,0b00000000,0b00000000,0b00000000}, //
    {0b00000000,0b00000000,0b01011111,0b00000000,0b00000000}, // !
    {0b00000000,0b00000111,0b00000000,0b00000111,0b00000000}, // "
    {0b00010100,0b01111111,0b00010100,0b01111111,0b00010100}, // #
    {0b00100100,0b00101010,0b01111111,0b00101010,0b00010010}, // $
    {0b00100011,0b00010011,0b00001000,0b01100100,0b01100010}, // %
    {0b00110110,0b01001001,0b01010101,0b00100010,0b01010000}, // &
    {0b00000000,0b00000101,0b00000011,0b00000000,0b00000000}, // '
    {0b00000000,0b00011100,0b00100010,0b01000001,0b00000000}, // (
    {0b00000000,0b01000001,0b00100010,0b00011100,0b00000000}, // )
    {0b00001000,0b00101010,0b00011100,0b00101010,0b00001000}, // *
    {0b00001000,0b00001000,0b00111110,0b00001000,0b00001000}, // +
    {0b00000000,0b01010000,0b00110000,0b00000000,0b00000000}, // ,
    {0b00001000,0b00001000,0b00001000,0b00001000,0b00001000}, // -
    {0b00000000,0b01100000,0b01100000,0b00000000,0b00000000}, // .
    {0b00100000,0b00010000,0b00001000,0b00000100,0b00000010}, // /
    {0b00111110,0b01010001,0b01001001,0b01000101,0b00111110}, // 0
    {0b00000000,0b01000010,0b01111111,0b01000000,0b00000000}, // 1
    {0b01000010,0b01100001,0b01010001,0b01001001,0b01000110}, // 2
    {0b00100001,0b01000001,0b01000101,0b01001011,0b00110001}, // 3
    {0b00011000,0b00010100,0b00010010,0b01111111,0b00010000}, // 4
    {0b00100111,0b01000101,0b01000101,0b01000101,0b00111001}, // 5
    {0b00111100,0b01001010,0b01001001,0b01001001,0b00110000}, // 6
    {0b00000001,0b01110001,0b00001001,0b00000101,0b00000011}, // 7
    {0b00110110,0b01001001,0b01001001,0b01001001,0b00110110}, // 8
    {0b00000110,0b01001001,0b01001001,0b00101001,0b00011110}, // 9
    {0b00000000,0b00110110,0b00110110,0b00000000,0b00000000}, // :
    {0b00000000,0b01010110,0b00110110,0b00000000,0b00000000}, // ;
    {0b00000000,0b00001000,0b00010100,0b00100010,0b01000001}, // <
    {0b00010100,0b00010100,0b00010100,0b00010100,0b00010100}, // =
    {0b01000001,0b00100010,0b00010100,0b00001000,0b00000000}, // >
    {0b00000010,0b00000001,0b01010001,0b00001001,0b00000110}, // ?
    {0b00110010,0b01001001,0b01111001,0b01000001,0b00111110}, // @
    {0b01111110,0b00010001,0b00010001,0b00010001,0b01111110}, // A
    {0b01111111,0b01001001,0b01001001,0b01001001,0b00110110}, // B
    {0b00111110,0b01000001,0b01000001,0b01000001,0b00100010}, // C
    {0b01111111,0b01000001,0b01000001,0b00100010,0b00011100}, // D
    {0b01111111,0b01001001,0b01001001,0b01001001,0b01000001}, // E
    {0b01111111,0b00001001,0b00001001,0b00000001,0b00000001}, // F
    {0b00111110,0b01000001,0b01000001,0b01010001,0b00110010}, // G
    {0b01111111,0b00001000,0b00001000,0b00001000,0b01111111}, // H
    {0b00000000,0b01000001,0b01111111,0b01000001,0b00000000}, // I
    {0b00100000,0b01000000,0b01000001,0b00111111,0b00000001}, // J
    {0b01111111,0b00001000,0b00010100,0b00100010,0b01000001}, // K
    {0b01111111,0b01000000,0b01000000,0b01000000,0b01000000}, // L
    {0b01111111,0b00000010,0b00000100,0b00000010,0b01111111}, // M
    {0b01111111,0b00000100,0b00001000,0b00010000,0b01111111}, // N
    {0b00111110,0b01000001,0b01000001,0b01000001,0b00111110}, // O
    {0b01111111,0b00001001,0b00001001,0b00001001,0b00000110}, // P
    {0b00111110,0b01000001,0b01010001,0b00100001,0b01011110}, // Q
    {0b01111111,0b00001001,0b00011001,0b00101001,0b01000110}, // R
    {0b01000110,0b01001001,0b01001001,0b01001001,0b00110001}, // S
    {0b00000001,0b00000001,0b01111111,0b00000001,0b00000001}, // T
    {0b00111111,0b01000000,0b01000000,0b01000000,0b00111111}, // U
    {0b00011111,0b00100000,0b01000000,0b00100000,0b00011111}, // V
    {0b01111111,0b00100000,0b00011000,0b00100000,0b01111111}, // W
    {0b01100011,0b00010100,0b00001000,0b00010100,0b01100011}, // X
    {0b00000011,0b00000100,0b01111000,0b00000100,0b00000011}, // Y
    {0b01100001,0b01010001,0b01001001,0b01000101,0b01000011}, // Z
    {0b00000000,0b00000000,0b01111111,0b01000001,0b01000001}, // [
    {0b00000010,0b00000100,0b00001000,0b00010000,0b00100000}, // "\"
    {0b01000001,0b01000001,0b01111111,0b00000000,0b00000000}, // ]
    {0b00000100,0b00000010,0b00000001,0b00000010,0b00000100}, // ^
    {0b01000000,0b01000000,0b01000000,0b01000000,0b01000000}, // _
    {0b00000000,0b00000001,0b00000010,0b00000100,0b00000000}, // `
    {0b00100000,0b01010100,0b01010100,0b01010100,0b01111000}, // a
    {0b01111111,0b01001000,0b01000100,0b01000100,0b00111000}, // b
    {0b00111000,0b01000100,0b01000100,0b01000100,0b00100000}, // c
    {0b00111000,0b01000100,0b01000100,0b01001000,0b01111111}, // d
    {0b00111000,0b01010100,0b01010100,0b01010100,0b00011000}, // e
    {0b00001000,0b01111110,0b00001001,0b00000001,0b00000010}, // f
    {0b00001000,0b00010100,0b01010100,0b01010100,0b00111100}, // g
    {0b01111111,0b00001000,0b00000100,0b00000100,0b01111000}, // h
    {0b00000000,0b01000100,0b01111101,0b01000000,0b00000000}, // i
    {0b00100000,0b01000000,0b01000100,0b00111101,0b00000000}, // j
    {0b00000000,0b01111111,0b00010000,0b00101000,0b01000100}, // k
    {0b00000000,0b01000001,0b01111111,0b01000000,0b00000000}, // l
    {0b01111100,0b00000100,0b00011000,0b00000100,0b01111000}, // m
    {0b01111100,0b00001000,0b00000100,0b00000100,0b01111000}, // n
    {0b00111000,0b01000100,0b01000100,0b01000100,0b00111000}, // o
    {0b01111100,0b00010100,0b00010100,0b00010100,0b00001000}, // p
    {0b00001000,0b00010100,0b00010100,0b00011000,0b01111100}, // q
    {0b01111100,0b00001000,0b00000100,0b00000100,0b00001000}, // r
    {0b01001000,0b01010100,0b01010100,0b01010100,0b00100000}, // s
    {0b00000100,0b00111111,0b01000100,0b01000000,0b00100000}, // t
    {0b00111100,0b01000000,0b01000000,0b00100000,0b01111100}, // u
    {0b00011100,0b00100000,0b01000000,0b00100000,0b00011100}, // v
    {0b00111100,0b01000000,0b00110000,0b01000000,0b00111100}, // w
    {0b01000100,0b00101000,0b00010000,0b00101000,0b01000100}, // x
    {0b00001100,0b01010000,0b01010000,0b01010000,0b00111100}, // y
    {0b01000100,0b01100100,0b01010100,0b01001100,0b01000100}, // z
    {0b00000000,0b00001000,0b00110110,0b01000001,0b00000000}, // {
    {0b00000000,0b00000000,0b01111111,0b00000000,0b00000000}, // |
    {0b00000000,0b01000001,0b00110110,0b00001000,0b00000000}, // }
    {0b00000010,0b00000001,0b00000011,0b00000010,0b00000001}, // ~
    };

// Font 4x6 - Small
const unsigned char PROGMEM font4[95][4] = {
        {0b00000000,0b00000000,0b00000000,0b00000000}, //
        {0b00000000,0b01011100,0b00000000,0b00000000}, // !
        {0b00001100,0b00000000,0b00001100,0b00000000}, // "
        {0b01111100,0b00101000,0b01111100,0b00101000}, // #
        {0b01011000,0b11011100,0b01101000,0b00000000}, // $
        {0b00100100,0b00010000,0b01001000,0b00000000}, // %
        {0b00101000,0b01010100,0b00101000,0b01000000}, // &
        {0b00000000,0b00001100,0b00000000,0b00000000}, // '
        {0b00000000,0b01111000,0b10000100,0b00000000}, // (
        {0b10000100,0b01111000,0b00000000,0b00000000}, // )
        {0b01010100,0b00111000,0b01010100,0b00000000}, // *
        {0b00010000,0b01111100,0b00010000,0b00000000}, // +
        {0b10000000,0b01000000,0b00000000,0b00000000}, // ,
        {0b00010000,0b00010000,0b00010000,0b00000000}, // -
        {0b00000000,0b01000000,0b00000000,0b00000000}, // .
        {0b01100000,0b00010000,0b00001100,0b00000000}, // /
        {0b00111000,0b01010100,0b00111000,0b00000000}, // 0
        {0b01001000,0b01111100,0b01000000,0b00000000}, // 1
        {0b01001000,0b01100100,0b01011000,0b00000000}, // 2
        {0b01000100,0b01010100,0b00101100,0b00000000}, // 3
        {0b00011100,0b00010000,0b01111100,0b00000000}, // 4
        {0b01011100,0b01010100,0b00100100,0b00000000}, // 5
        {0b00111000,0b01010100,0b00100100,0b00000000}, // 6
        {0b01100100,0b00010100,0b00001100,0b00000000}, // 7
        {0b01101000,0b01010100,0b00101100,0b00000000}, // 8
        {0b01001000,0b01010100,0b00111000,0b00000000}, // 9
        {0b00000000,0b01001000,0b00000000,0b00000000}, // :
        {0b10000000,0b01001000,0b00000000,0b00000000}, // ;
        {0b00010000,0b00101000,0b01000100,0b00000000}, // <
        {0b00101000,0b00101000,0b00101000,0b00000000}, // =
        {0b01000100,0b00101000,0b00010000,0b00000000}, // >
        {0b00000100,0b01010100,0b00001000,0b00000000}, // ?
        {0b00111000,0b01000100,0b01011100,0b00000000}, // @
        {0b01111000,0b00010100,0b01111000,0b00000000}, // A
        {0b01111100,0b01010100,0b00101000,0b00000000}, // B
        {0b00111000,0b01000100,0b00101000,0b00000000}, // C
        {0b01111100,0b01000100,0b00111000,0b00000000}, // D
        {0b01111100,0b01010100,0b01000100,0b00000000}, // E
        {0b01111100,0b00010100,0b00000100,0b00000000}, // F
        {0b00111000,0b01000100,0b01110100,0b00000000}, // G
        {0b01111100,0b00010000,0b01111100,0b00000000}, // H
        {0b01000100,0b01111100,0b01000100,0b00000000}, // I
        {0b00100000,0b01000000,0b00111100,0b00000000}, // J
        {0b01111100,0b00010000,0b01101100,0b00000000}, // K
        {0b01111100,0b01000000,0b01000000,0b00000000}, // L
        {0b01111100,0b00011000,0b01111100,0b00000000}, // M
        {0b01111000,0b00010000,0b00111100,0b00000000}, // N
        {0b00111000,0b01000100,0b00111000,0b00000000}, // O
        {0b01111100,0b00010100,0b00001000,0b00000000}, // P
        {0b00111000,0b01000100,0b10111000,0b00000000}, // Q
        {0b01111100,0b00010100,0b01101000,0b00000000}, // R
        {0b01001000,0b01010100,0b00100100,0b00000000}, // S
        {0b00000100,0b01111100,0b00000100,0b00000000}, // T
        {0b01111100,0b01000000,0b01111100,0b00000000}, // U
        {0b00111100,0b01100000,0b00111100,0b00000000}, // V
        {0b01111100,0b00110000,0b01111100,0b00000000}, // W
        {0b01101100,0b00010000,0b01101100,0b00000000}, // X
        {0b00001100,0b01110000,0b00001100,0b00000000}, // Y
        {0b01100100,0b01010100,0b01001100,0b00000000}, // Z
        {0b00000000,0b01111100,0b01000100,0b00000000}, // [
        {0b00001100,0b00010000,0b01100000,0b00000000}, // "\"
        {0b01000100,0b01111100,0b00000000,0b00000000}, // ]
        {0b00001000,0b00000100,0b00001000,0b00000000}, // ^
        {0b10000000,0b10000000,0b10000000,0b00000000}, // _
        {0b00000000,0b00000100,0b00001000,0b00000000}, // `
        {0b00110000,0b01001000,0b01111000,0b00000000}, // a
        {0b01111100,0b01001000,0b00110000,0b00000000}, // b
        {0b00110000,0b01001000,0b01001000,0b00000000}, // c
        {0b00110000,0b01001000,0b01111100,0b00000000}, // d
        {0b00110000,0b01101000,0b01010000,0b00000000}, // e
        {0b00010000,0b01111000,0b00010100,0b00000000}, // f
        {0b10010000,0b10101000,0b01111000,0b00000000}, // g
        {0b01111100,0b00001000,0b01110000,0b00000000}, // h
        {0b01010000,0b01110100,0b01000000,0b00000000}, // i
        {0b10000000,0b10000000,0b01110100,0b00000000}, // j
        {0b01111100,0b00010000,0b01101000,0b00000000}, // k
        {0b01000100,0b01111100,0b01000000,0b00000000}, // l
        {0b01111000,0b00010000,0b01111000,0b00000000}, // m
        {0b01111000,0b00001000,0b01110000,0b00000000}, // n
        {0b00110000,0b01001000,0b00110000,0b00000000}, // o
        {0b11111000,0b00101000,0b00010000,0b00000000}, // p
        {0b00110000,0b01001000,0b11111000,0b00000000}, // q
        {0b01111000,0b00010000,0b00001000,0b00000000}, // r
        {0b01010000,0b01011000,0b00101000,0b00000000}, // s
        {0b00001000,0b00111100,0b01001000,0b00000000}, // t
        {0b00111000,0b01000000,0b01111000,0b00000000}, // u
        {0b00111000,0b01000000,0b00111000,0b00000000}, // v
        {0b01111000,0b00100000,0b01111000,0b00000000}, // w
        {0b01001000,0b00110000,0b01001000,0b00000000}, // x
        {0b10011000,0b10100000,0b01111000,0b00000000}, // y
        {0b01001000,0b01101000,0b01011000,0b00000000}, // z
        {0b00010000,0b01111000,0b10000100,0b00000000}, // {
        {0b00000000,0b01111100,0b00000000,0b00000000}, // |
        {0b10000100,0b01111000,0b00010000,0b00000000}, // }
        {0b00001000,0b00000100,0b00001000,0b00000100}, // ~
        };

#endif /* FONTS_H_ */

由于我不知道是什么导致了问题,因此很难缩小范围并给出相关的项目代码。

编辑:在标题中声明 fonts.h 变量并在 fonts.c 文件中初始化它们解决了多重定义问题。静态变量“已定义但未使用”问题仍然存在

【问题讨论】:

  • 不得定义标题中带有外部链接的任何内容,句号。因此,问题出在此处的第 10 行和第 n-1 行之间存在的代码。你可以声明extern const unsigned char font8;(或者PROGMEM,不确定哪个是正确的)。
  • 至于没有用到的静态变量,那肯定是个开关...
  • 这些声明虽然使用 PROGMEM,但在我开始更改其他库之前确实有效。
  • 很可能,您的“.h”文件只包含在一个“.c”文件中,现在它包含在其他“.c”文件中。另一种选择是库中的其他成员现在正在链接到您的代码中。
  • 将所有数据放入fonts.c文件中,然后在头文件中只有一个数据的“原型”,类似于:extern const unsigned char PROGMEM font8[95][8];

标签: c header initialization avr atmel


【解决方案1】:

如果一个全局变量声明为static,这意味着它只能在这个特定的.c 文件中使用。如果变量已声明但从未使用过,则表示代码中存在语义错误,并被标记为警告。

一般方法:只需删除未使用的静态变量,或从声明中删除 static 关键字。

如果您在.h 文件中声明了数组。这意味着每次包含头文件时,都会创建这些变量的新副本。如果它们未声明为static,则会导致编译错误。如果是static,那么每个副本都会占用内存。

要解决此问题,您可能希望将这些数组移动到不带关键字 static.c 文件中:

// inside .c file
const unsigned char PROGMEM font8[95][8] = {
    {0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000},
    ...

.h-file 中只对这些数组进行声明:

// inside .h file
extern const unsigned char PROGMEM font8[95][8];

(注意关键字extern

这允许您在每个 .c 文件中使用相同的数组副本,其中包含 .h

【讨论】:

    【解决方案2】:

    静态变量“已定义但未使用”已通过将其声明移至相关库的 .c 文件来解决。示例:

    .c - 文件

    static const volatile menu_page** MENU_PAGE_TABLE_SRAM_BASE_OFFSET;     
    
    init_params()
    {
         MENU_PAGE_TABLE_SRAM_BASE_OFFSET = (menu_page**) 0x1C00;
    }
    

    在哪里

    static const volatile menu_page** MENU_PAGE_TABLE_SRAM_BASE_OFFSET;     
    

    以前位于 .h 文件中

    【讨论】:

      猜你喜欢
      • 2018-08-06
      • 2014-10-09
      • 2020-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多