В настоящее время я пишу программу для работы на микрочипе PIC18 Microchip. Я использую xc8 (v1.45 -Я должен использовать эту версию-) и работает в MPLAB IDE. В этой версии компилятора не поддерживается 64-битное целое число. Мне нужно использовать 64-битные целые числа для некоторых вычислений. Пожалуйста, смотрите мой метод ниже, чтобы создать 64-битную целочисленную переменную типа. Но всякий раз, когда я пытаюсь преобразовать любой другой тип переменной в этот вновь созданный тип, я получаю эту ошибку:
ошибка: приведение к типу объединения из типа, отсутствующего в union
Не могли бы вы помочь мне решить эту проблему?
Я пытался использовать переменную "long long int", но эта версия xc8 не поддерживает ее.
#include <stdio.h>
#include <stdint.h>
typedef union
{
int32_t bigInteger[2];
}myInt64;
int main(void) {
myInt64 *myVariable;
myInt64 *aaa;
long abc = 0xFAC0ED12;
aaa = (myInt64)abc;
myVariable = 0xF0000000000000000F;
printf("%jx", aaa);
return EXIT_SUCCESS;
}