이 프로젝트에 대한 액세스 권한이 있습니다. Keil μvision 5에서 컴파일됩니다. 프로젝트를 컴파일 할 때 오류가 없습니다. 그러나 헤더 파일에 액세스하면 s8 변수에 다음 오류가 있음을 알리는 오류가 표시됩니다. 오류 : 알 수없는 형식 이름 's8'.Keil μvision 5 헤더 파일에 오류가 표시되지만 문제없이 컴파일됩니다.
typedef struct
{
s8 str[PARAM_TEXT_SIZE];
}
text_struct;
이 변수는 다음과 같이 정의된다 :
typedef char s8;
은 내가 컴파일러를 잘못 여부를 궁금해, 또는 왜이 오류는 컴파일 한 후 무시됩니다.
추신 : 이것은 StackOverflow 사이트의 첫 번째 질문입니다. 미안 내 질문이 명확하지 않거나 잘못 배치하는 경우. s8
이 헤더에 정의되어
예를 들면 다음과 같습니다입니까? 이러한 파일은 어느 위치에 있습니까? 's8'은 표준이 아닙니다. 또한 unsigned 일 수 있기 때문에 'char'를 signed 8로 typedef하는 것은 매우 나쁜 생각입니다. 당신이해야 할 일은 (1999 년 이래로)'stdint.h'를 사용하는 것이지 집에서 만든 정크 타입은 사용하지 않는 것입니다. – Lundin
@Lundin '(1999 년 이래로)'-> 올해부터 크로스 컴파일러 제공 업체는 21 세기를 깨닫고 있습니다. * 198X *에서 울부 짖었다. (ARM 컴파일러가 최신 버전입니다.) – Tim
Hello @ Lundin, 내가이 코드를 가지고 있다고 말했기 때문에. 일반적으로, 나는 당신이 'stdint.h'라고 말한 것처럼 사용할 것입니다. 하지만 이것은 큰 코드 (100,000 개 이상의 코드 행)이며이 변수는 코드에서 널리 사용됩니다. ARM 마이크로 컨트롤러 용 'typedef_arm.h'파일에 정의되어 있습니다. 그리고 이것은 마이크로 컨트롤러의 이진 계산에 중요하기 때문에 부호있는 변수로 정의됩니다. –