Một câu hỏi được hỏi trong một thử nghiệm nhiều sự lựa chọn: Điều gì sẽ là đầu ra của chương trình sau đây:Turbo C++: Tại sao printf in giá trị dự kiến, khi không có biến nào được truyền cho nó?
#include <stdio.h>
int main(void)
{
int a = 10, b = 5, c = 2;
printf("%d %d %d\n");
return 0;
}
và những lựa chọn là hoán vị khác nhau là 10, 5, và 2. Đối với một số lý do, nó hoạt động trong Turbo C++, mà chúng tôi sử dụng trong trường đại học. Tuy nhiên, nó không phải khi biên soạn với gcc (trong đó đưa ra một cảnh báo khi -Wall được kích hoạt) hoặc kêu vang (trong đó có -Wformat kích hoạt và đưa ra một cảnh báo theo mặc định) hoặc trong Visual C++. Đầu ra là, như mong đợi, giá trị rác thải. Tôi đoán là nó có một cái gì đó để làm với thực tế là một trong hai Turbo C + + là 16-bit, và chạy trên Windows XP 32-bit, hoặc TCC là khủng khiếp khi nói đến tiêu chuẩn.
Đầu ra có thể là bất kỳ thứ gì, vì mã này dẫn đến hành vi không xác định. –
Vâng, toàn bộ trình biên dịch là một cá trích đỏ. –
Trong công cụ định dạng gcc phải có tên biến, ví dụ printf ("% d", x); Nếu không printf sẽ in một số giá trị – sujin