C++ cho phép các kiểu dữ liệu char, int và double có các Modifier đặt trước chúng. Một Modifier được sử dụng để thông báo ý nghĩa của kiểu cơ sở, giúp cho nó tăng sự chính xác hơn với sự cần thiết của các tình huống đa dạng.
Dưới đây là các Modifier trong C/C++:
- signed (có dấu)
- unsigned (không có dấu)
- long
- short
Các Modifier là: signed, unsigned, long, và short có thể được áp dụng cho kiểu integer. Ngoài ra, signed và unsigned có thể được áp dụng cho kiểu char, và long có thể áp dụng cho kiểu double.
Các Modifier là signed và unsigned cũng có thể được sử dụng như là tiền tố cho các Modifier là long hoặc short modifiers. Ví dụ: unsigned long int.
C++ cho phép kiểu khai báo tắt để khai báo các unsigned, short, or long integer. Bạn có thể chỉ đơn giản sử dụng từ unsigned, short, hoặc long, mà không cần int. Ví dụ sau minh họa hai khai báo là hợp lệ trong C/C++ để khai báo các biến unsigned integer:
unsigned x; unsigned int y;
Để phân biệt sự khác nhau giữa hai Modifier là signed integer và unsigned integer được thông dịch bởi C/C++, bạn nên chạy chương trình sau:
#include <iostream>
using namespace std;
/* Chuong trinh nay chi ra diem khac nhau giua
* cac so nguyen signed va unsigned.
*/
int main()
{
short int i; // mot so nguyen signed short int
short unsigned int j; // mot so nguyen unsigned short int
j = 32769;
i = j;
cout << i << " " << j;
return 0;
}
Nó sẽ cho kết quả:
-32767 32769
Nếu bạn quay trở lại chương Kiểu dữ liệu trong C/C++, và đọc phần dãy giá trị của short int và unsigned short int, bạn sẽ nhận ra sự khác nhau khi chạy chương trình trên với j <= 32767 và với j >= 32767.
Qualifier trong C/C++
Qualifier cung cấp thông tin bổ sung về các biến theo sau nó.
Qualifier | Ý nghĩa |
---|---|
const | Đối tượng của kiểu const không thể bị thay đổi bởi chương trình trong khi thực thi |
volatile | Modifier này nói cho compiler rằng giá trị của biến có thể được thay đổi một cách không rõ ràng (không báo trước) bởi chương trình. |
restrict | Một con trỏ được đặt là restrict thì có ý nghĩa là đối tượng nó trỏ đến có thể được truy cập. Restrict được thêm vào trong chuẩn C99. |