Đề XuấT, 2024

Editor Choice

Sự khác biệt giữa Định nghĩa và Tuyên bố

Định nghĩa và Tuyên bố là những thuật ngữ rất khó hiểu nếu bạn chưa quen với lập trình. Hai khái niệm này khác nhau theo một số cách vì định nghĩa liên quan đến việc gán bộ nhớ cho các biến trong khi trong bộ nhớ khai báo không được phân bổ. Việc khai báo có thể được thực hiện nhiều lần, ngược lại, một thực thể có thể được định nghĩa chính xác một lần trong một chương trình.

Định nghĩa tự động là một tuyên bố trong hầu hết các kịch bản. Bây giờ hãy hiểu sự khác biệt giữa định nghĩa và khai báo với biểu đồ so sánh chi tiết.

Biểu đồ so sánh

Cơ sở để so sánhĐịnh nghĩaTờ khai
Căn bảnXác định giá trị được lưu trữ trong biến, hàm hoặc lớp.Chỉ định tên và loại biến, hàm, lớp, v.v.
Cấp phát bộ nhớXảy raKhông diễn ra.
Sự lặp lạiBáo cáo không thể được xác định lại nếu nó đã được xác định.Việc khai báo có thể dễ dàng
Phạm viThời lượng được xác địnhTầm nhìn được chỉ định

Định nghĩa định nghĩa

Định nghĩa xác định mã hoặc dữ liệu liên quan đến tên của biến, hàm, lớp, vân vân. Định nghĩa nhất thiết phải có bởi trình biên dịch để phân bổ không gian lưu trữ cho thực thể khai báo. Khi một biến được định nghĩa, nó chứa một lượng bộ nhớ bao gồm một vài byte cho biến đó. Một định nghĩa hàm tạo mã cho hàm. Chúng ta có thể định nghĩa một phần tử chương trình chỉ một lần trong một chương trình vì định nghĩa là một đặc tả duy nhất của một phần tử chương trình. Mối quan hệ giữa khai báo và định nghĩa có thể là một-nhiều .

Trong một số trường hợp, một phần tử chương trình không thể được xác định nhưng được khai báo, ví dụ khi một hàm không bao giờ được gọi hoặc địa chỉ của nó không bao giờ được sử dụng ngay cả khi nó được khai báo. Một ví dụ khác là trong đó định nghĩa lớp không được sử dụng trong khi nó phải được khai báo.

Định nghĩa của Tuyên bố

Khai báo được sử dụng để chỉ định các tên cho chương trình như tên của một biến, hàm, không gian tên, các lớp, v.v. Không có tên nào có thể được sử dụng trong một chương trình mà không cần khai báo. Các yếu tố chương trình có thể được khai báo nhiều lần, không giống như định nghĩa. Nhiều khai báo chỉ có thể đạt được khi các khai báo khác nhau được thực hiện bằng cách sử dụng định dạng giống hệt nhau. Tuyên bố là phương tiện cung cấp khả năng hiển thị cho phần tử chương trình theo quan điểm của trình biên dịch.

Tuyên bố phục vụ mục đích của định nghĩa, chỉ trong một số trường hợp, điều kiện không được ngụ ý được đưa ra dưới đây.

  • Khi thành viên dữ liệu tĩnh được khai báo bên trong một khai báo lớp, trong trường hợp đó, nó không phải là một khai báo. Bởi vì nó chỉ tạo một bản sao cho tất cả các đối tượng của lớp và các thành viên dữ liệu tĩnh là các thành phần của các đối tượng của một loại lớp được cung cấp.
  • Nếu một tuyên bố là tuyên bố typedef.
  • Một biến được khai báo mà không có bộ khởi tạo hoặc thân hàm nhưng bao gồm các bộ chỉ định bên ngoài. Nó chỉ ra rằng định nghĩa có thể dành cho chức năng khác và cung cấp tên liên kết bên ngoài.
  • Khai báo tên lớp mà không bao gồm định nghĩa, chẳng hạn như lớp T;

Thông thường, khai báo diễn ra trong một phạm vi . Phạm vi quyết định mức độ hiển thị của tên được khai báo và thời lượng đối tượng được xác định.

Sự khác biệt chính giữa Định nghĩa và Tuyên bố

  1. Định nghĩa của một phần tử chương trình xác định giá trị liên quan đến phần tử đó. Mặt khác, khai báo của một phần tử chương trình chỉ định tên và kiểu của nó cho trình biên dịch.
  2. Định nghĩa của phần tử chương trình dành một lượng bộ nhớ trong khi khai báo không liên quan đến cấp phát bộ nhớ.
  3. Một phần tử chương trình có thể được khai báo nhiều lần. Ngược lại, định nghĩa kết hợp một đặc tả kỹ thuật duy nhất với tên của thành phần chương trình có thể được phân biệt bởi bất kỳ mã hoặc dữ liệu nào.
  4. Phạm vi trong khai báo mô tả khả năng hiển thị của biến, hàm, đối tượng, lớp, liệt kê, v.v ... Ngược lại, trong định nghĩa, phạm vi liên quan đến thời lượng.

Định nghĩa ví dụ

  • Định nghĩa biến cũng như khai báo:
    int r = 10;
  • Định nghĩa hàm:
     int add (int x, int y) {int a; a = x + y; trả lại a; } 

Ví dụ khai báo

  • Sự định nghĩa biến:
    extern int r;
  • Chức năng khai báo:
    int add (int p1, int p2);

Phần kết luận

Quá trình khai báo được sử dụng để làm cho phần tử chương trình hiển thị với trình biên dịch và nó không yêu cầu phân bổ bộ nhớ. Định nghĩa ngược là một khai báo dự trữ lưu trữ, nói một cách đơn giản, trình biên dịch dành không gian bộ nhớ cho thực thể được khai báo.

Top