JavaScript is required

Xác định những điều sau đây là tuyên bố extern int x; float func(float x) { … } double pow(double, double);

A.

1

B.

B.2

C.

C.3

D.

1 và 3

Trả lời:

Đáp án đúng: D


Trong C/C++, một khai báo extern báo cho trình biên dịch biết rằng một biến hoặc hàm đã được định nghĩa ở một nơi khác (có thể là trong một file khác). Nó không cấp phát bộ nhớ cho biến đó, mà chỉ thông báo rằng biến đó sẽ được định nghĩa ở một nơi khác trong chương trình.

- extern int x;: Đây là một khai báo extern cho biến x kiểu int. Nó báo cho trình biên dịch biết rằng biến x kiểu int đã được định nghĩa ở một nơi khác.

- float func(float x) { ... }: Đây là một định nghĩa hàm func, không phải là một khai báo extern. Nó cấp phát bộ nhớ và cung cấp phần thân của hàm.

- double pow(double, double);: Đây là một khai báo hàm (function declaration) và mặc định là extern. Khi bạn khai báo một hàm mà không có định nghĩa (body), trình biên dịch hiểu rằng định nghĩa của hàm đó nằm ở một nơi khác. Trong trường hợp này, hàm pow (hàm lũy thừa) thường được định nghĩa trong thư viện chuẩn của C/C++.

Vậy, các tuyên bố extern là dòng 1 và dòng 3.

Câu hỏi liên quan