Confused on why even though I have this header linked several times:

```
#ifndef ASCII_CHAR_NAMES_H
#define ASCII_CHAR_NAMES_H
extern const unsigned char ASCII_WHITE_SMILEY = 1; //☺
extern const unsigned char ASCII_BLACK_SMILEY = 2; //☻
extern const unsigned char ASCII_BLACK_HEART = 3;
extern const unsigned char ASCII_BLACK_DIAMOND = 4;
extern const unsigned char ASCII_BLACK_CLOVE = 5;
extern const unsigned char ASCII_MALE = 11;
extern const unsigned char ASCII_FEMALE = 12;
extern const unsigned char ASCII_FUNCTION = 159; //ƒ
extern const unsigned char ASCII_INFINITY = 236; //∞
#endif/* ASCII_CHAR_NAMES_H */
```

but this one fails when it's only linked one time for repeated definition of CONSTANT_INFINITYd and CONSTANT_INFINITYf

```
#ifndef NUMERIC_CONSTANTS_H
#define NUMERIC_CONSTANTS_H
extern const double CONSTANT_INFINITYd = (double)0x7ff0000000000000;
extern const double CONSTANT_NEGATIVE_INFINITYd = (double)0xfff000000000000;
extern const double CONSTANT_PId = 3.14159265358979323846264338327950288419716939937510;
extern const double CONSTANT_TWO_PId = 2*CONSTANT_PId;
extern const double CONSTANT_PI_DIV_2d = CONSTANT_PId/2;
extern const double CONSTANT_PI_DIV_4d = CONSTANT_PId/4;
extern const double CONSTANT_PI_DIV_6d = CONSTANT_PId/6;
extern const double CONSTANT_ed = 2.71828182845904523536028747135266249775724709369995;
extern const float CONSTANT_INFINITYf = (float)CONSTANT_INFINITYd;
extern const float CONSTANT_NEGATIVE_INFINITYf = (float)CONSTANT_NEGATIVE_INFINITYd;
extern const float CONSTANT_PIf = (float)CONSTANT_PId;
extern const float CONSTANT_TWO_PIf = (float)CONSTANT_TWO_PId;
extern const float CONSTANT_PI_DIV_2f = (float)CONSTANT_PI_DIV_2d;
extern const float CONSTANT_PI_DIV_4f = (float)CONSTANT_PI_DIV_4d;
extern const float CONSTANT_PI_DIV_6f = (float)CONSTANT_PI_DIV_6d;
extern const float CONSTANT_ef = (float)CONSTANT_ed;
#endif /*NUMERIC_CONSTANTS_H*/
```