Why va_arg() produce different effects on x86_64 and arm?
问题 The codes: #include <stdio.h> #include <stdarg.h> #include <stdlib.h> typedef unsigned int uint32_t; float average(int n_values, ... ) { va_list var_arg; int count; float sum = 0; va_start(var_arg, n_values); for (count = 0; count < n_values; count += 1) { sum += va_arg(var_arg, signed long long int); } va_end(var_arg); return sum / n_values; } int main(int argc, char *argv[]) { (void)argc; (void)argv; printf("hello world!\n"); uint32_t t1 = 1; uint32_t t2 = 4; uint32_t t3 = 4; printf("result