下述代码在鲲鹏平台上运行,最终的运行结果是?

下述代码在鲲鹏平台上运行,最终的运行结果是?


#include

#define judge_negative_or_not(x) \

        ((x) < 0 ? printf("negative") : \

        ((x) == 0) ? printf("zero") : \

        printf("positive"))

                           

int main()

{

    unsigned char ch1 = -1;

    char ch2 = -1;

    signed char ch3 = -1;

      printf("unsigned char ch1 = 0x%x, %d, ", ch1, ch1),

      judge_negative_or_not(ch1), printf("\n");

    printf("         char ch2 = 0x%x, %d, ", ch2, ch2),

      judge_negative_or_not(ch2), printf("\n");

    printf("  signed char ch3 = 0x%x, %d, ", ch3, ch3),

judge_negative_or_not(ch3), printf("\n");

    return 0;

}

A
unsigned char ch1 = 0xff, 255, positive
char ch2 = 0xffffffff, -1, negative
signed char ch3 = 0xffffffff, -1, negative

B
unsigned char ch1 = 0xff, 255, positive

char ch2 = 0xffffffff, 255, negative

signed char ch3 = 0xffffffff, -1, negative

C
unsigned char ch1 = 0xff, 255, positive
char ch2 = 0xff, 255, positive
signed char ch3 = 0xffffffff, -1, negative

D
unsigned char ch1 = 0xff, 255, positive

char ch2 = 0xff, -1, positive

signed char ch3 = 0xffffffff, -1, negative

unsigned char ch1 = 0xff, 255, positive
         char ch2 = 0xffffffff, -1, negative
  signed char ch3 = 0xffffffff, -1, negative