Nói một cách đơn giản, đối với người mới, sự khác biệt giữa khai báo của Cameron và định nghĩa của vụn trong C là gì?


Câu trả lời 1:

Trong ngữ cảnh của ngôn ngữ C, Tuyên bố đề cập đến việc cho trình biên dịch biết tên, loại và chữ ký của các hàm hoặc phương thức.

Ví dụ:

/ * Khai báo functiom * /
 FooBar (Danh sách đối số có kiểu dữ liệu);

Ở đây chúng ta có thể thấy rằng nó kết thúc bằng dấu chấm phẩy và là một mã dòng đơn, chỉ cho biết tên trình biên dịch, đối số và kiểu trả về của hàm.

Trong khi đó, Định nghĩa là về việc xác định nội dung thực tế (cơ thể) của chức năng đó. Bao gồm tất cả các mã và logic và tất cả, mô tả chức năng thực sự làm gì.

Ví dụ:

/ * Xác định chức năng * /
 FooBar (Danh sách đối số có kiểu dữ liệu)
{
  / * Khai báo biến cục bộ * /
  / *
   Các dòng mã chứa logic chương trình thực tế
  * /
   trả về ;
}

Trong C, việc khai báo cần được thực hiện trước khi hàm đó được sử dụng, để trình biên dịch không gây ra lỗi, trong đó định nghĩa hàm có thể ở bất kỳ đâu trong phạm vi hiện tại của chương trình.

Cảm ơn bạn


Câu trả lời 2:

Một khai báo thông báo cho trình biên dịch trước loại, kích thước của biến và về các tham số, kiểu trả về của hàm.

Không có phân bổ bộ nhớ xảy ra trong quá trình khai báo.

ví dụ: int j;

Định nghĩa: Nó định nghĩa về những gì biến / chức năng đó làm, giá trị của nó. Phân bổ bộ nhớ thực tế xảy ra sau khi định nghĩa.

ví dụ: j = 3;


Câu trả lời 3:

Một tuyên bố chỉ là như vậy - nó ở đó để báo cho trình biên dịch mong đợi tìm thấy định nghĩa sau trong mã nguồn. Nó thường có trong một tệp tiêu đề (phần mở rộng .h hoặc .hpp) và nguồn (phần mở rộng c hoặc phần mở rộng) sẽ có định nghĩa thường. Mục đích của khai báo là cho phép một lập trình viên đang sử dụng hàm hoặc lớp mà bạn đang khai báo có thể sử dụng hàm hoặc lớp - họ không cần định nghĩa vì đó là mã nguồn cho trình biên dịch biết cách thực sự làm gì hàm / lớp nên làm nhưng khai báo cho họ biết hàm trả về cái gì, hàm đối số của hàm là gì và tên của hàm để sau này chúng có thể gọi hàm từ mã của chúng. Nếu nó không rõ ràng cho đến nay, định nghĩa này có mã nguồn để định nghĩa (do đó, từ định nghĩa về định nghĩa). Một ví dụ về cả hai ở đây:

//tờ khai
int doS Something (int x, int y);

//Định nghĩa
int doS Something (int x, int y)
{
trả lại (x * y);
}

Câu trả lời 4:

Một tuyên bố chỉ là như vậy - nó ở đó để báo cho trình biên dịch mong đợi tìm thấy định nghĩa sau trong mã nguồn. Nó thường có trong một tệp tiêu đề (phần mở rộng .h hoặc .hpp) và nguồn (phần mở rộng c hoặc phần mở rộng) sẽ có định nghĩa thường. Mục đích của khai báo là cho phép một lập trình viên đang sử dụng hàm hoặc lớp mà bạn đang khai báo có thể sử dụng hàm hoặc lớp - họ không cần định nghĩa vì đó là mã nguồn cho trình biên dịch biết cách thực sự làm gì hàm / lớp nên làm nhưng khai báo cho họ biết hàm trả về cái gì, hàm đối số của hàm là gì và tên của hàm để sau này chúng có thể gọi hàm từ mã của chúng. Nếu nó không rõ ràng cho đến nay, định nghĩa này có mã nguồn để định nghĩa (do đó, từ định nghĩa về định nghĩa). Một ví dụ về cả hai ở đây:

//tờ khai
int doS Something (int x, int y);

//Định nghĩa
int doS Something (int x, int y)
{
trả lại (x * y);
}

Câu trả lời 5:

Một tuyên bố chỉ là như vậy - nó ở đó để báo cho trình biên dịch mong đợi tìm thấy định nghĩa sau trong mã nguồn. Nó thường có trong một tệp tiêu đề (phần mở rộng .h hoặc .hpp) và nguồn (phần mở rộng c hoặc phần mở rộng) sẽ có định nghĩa thường. Mục đích của khai báo là cho phép một lập trình viên đang sử dụng hàm hoặc lớp mà bạn đang khai báo có thể sử dụng hàm hoặc lớp - họ không cần định nghĩa vì đó là mã nguồn cho trình biên dịch biết cách thực sự làm gì hàm / lớp nên làm nhưng khai báo cho họ biết hàm trả về cái gì, hàm đối số của hàm là gì và tên của hàm để sau này chúng có thể gọi hàm từ mã của chúng. Nếu nó không rõ ràng cho đến nay, định nghĩa này có mã nguồn để định nghĩa (do đó, từ định nghĩa về định nghĩa). Một ví dụ về cả hai ở đây:

//tờ khai
int doS Something (int x, int y);

//Định nghĩa
int doS Something (int x, int y)
{
trả lại (x * y);
}

Câu trả lời 6:

Một tuyên bố chỉ là như vậy - nó ở đó để báo cho trình biên dịch mong đợi tìm thấy định nghĩa sau trong mã nguồn. Nó thường có trong một tệp tiêu đề (phần mở rộng .h hoặc .hpp) và nguồn (phần mở rộng c hoặc phần mở rộng) sẽ có định nghĩa thường. Mục đích của khai báo là cho phép một lập trình viên đang sử dụng hàm hoặc lớp mà bạn đang khai báo có thể sử dụng hàm hoặc lớp - họ không cần định nghĩa vì đó là mã nguồn cho trình biên dịch biết cách thực sự làm gì hàm / lớp nên làm nhưng khai báo cho họ biết hàm trả về cái gì, hàm đối số của hàm là gì và tên của hàm để sau này chúng có thể gọi hàm từ mã của chúng. Nếu nó không rõ ràng cho đến nay, định nghĩa này có mã nguồn để định nghĩa (do đó, từ định nghĩa về định nghĩa). Một ví dụ về cả hai ở đây:

//tờ khai
int doS Something (int x, int y);

//Định nghĩa
int doS Something (int x, int y)
{
trả lại (x * y);
}

Câu trả lời 7:

Một tuyên bố chỉ là như vậy - nó ở đó để báo cho trình biên dịch mong đợi tìm thấy định nghĩa sau trong mã nguồn. Nó thường có trong một tệp tiêu đề (phần mở rộng .h hoặc .hpp) và nguồn (phần mở rộng c hoặc phần mở rộng) sẽ có định nghĩa thường. Mục đích của khai báo là cho phép một lập trình viên đang sử dụng hàm hoặc lớp mà bạn đang khai báo có thể sử dụng hàm hoặc lớp - họ không cần định nghĩa vì đó là mã nguồn cho trình biên dịch biết cách thực sự làm gì hàm / lớp nên làm nhưng khai báo cho họ biết hàm trả về cái gì, hàm đối số của hàm là gì và tên của hàm để sau này chúng có thể gọi hàm từ mã của chúng. Nếu nó không rõ ràng cho đến nay, định nghĩa này có mã nguồn để định nghĩa (do đó, từ định nghĩa về định nghĩa). Một ví dụ về cả hai ở đây:

//tờ khai
int doS Something (int x, int y);

//Định nghĩa
int doS Something (int x, int y)
{
trả lại (x * y);
}

Câu trả lời 8:

Một tuyên bố chỉ là như vậy - nó ở đó để báo cho trình biên dịch mong đợi tìm thấy định nghĩa sau trong mã nguồn. Nó thường có trong một tệp tiêu đề (phần mở rộng .h hoặc .hpp) và nguồn (phần mở rộng c hoặc phần mở rộng) sẽ có định nghĩa thường. Mục đích của khai báo là cho phép một lập trình viên đang sử dụng hàm hoặc lớp mà bạn đang khai báo có thể sử dụng hàm hoặc lớp - họ không cần định nghĩa vì đó là mã nguồn cho trình biên dịch biết cách thực sự làm gì hàm / lớp nên làm nhưng khai báo cho họ biết hàm trả về cái gì, hàm đối số của hàm là gì và tên của hàm để sau này chúng có thể gọi hàm từ mã của chúng. Nếu nó không rõ ràng cho đến nay, định nghĩa này có mã nguồn để định nghĩa (do đó, từ định nghĩa về định nghĩa). Một ví dụ về cả hai ở đây:

//tờ khai
int doS Something (int x, int y);

//Định nghĩa
int doS Something (int x, int y)
{
trả lại (x * y);
}

Câu trả lời 9:

Một tuyên bố chỉ là như vậy - nó ở đó để báo cho trình biên dịch mong đợi tìm thấy định nghĩa sau trong mã nguồn. Nó thường có trong một tệp tiêu đề (phần mở rộng .h hoặc .hpp) và nguồn (phần mở rộng c hoặc phần mở rộng) sẽ có định nghĩa thường. Mục đích của khai báo là cho phép một lập trình viên đang sử dụng hàm hoặc lớp mà bạn đang khai báo có thể sử dụng hàm hoặc lớp - họ không cần định nghĩa vì đó là mã nguồn cho trình biên dịch biết cách thực sự làm gì hàm / lớp nên làm nhưng khai báo cho họ biết hàm trả về cái gì, hàm đối số của hàm là gì và tên của hàm để sau này chúng có thể gọi hàm từ mã của chúng. Nếu nó không rõ ràng cho đến nay, định nghĩa này có mã nguồn để định nghĩa (do đó, từ định nghĩa về định nghĩa). Một ví dụ về cả hai ở đây:

//tờ khai
int doS Something (int x, int y);

//Định nghĩa
int doS Something (int x, int y)
{
trả lại (x * y);
}