cuốn sách gpt4 ai đã làm

Truyền con trỏ tới giá trị loại mặc định làm đối số trong một dòng

In lại Tác giả: Walker 123 Thời gian cập nhật: 27-11-2023 23:51:52 27 4
mua khóa gpt4 Nike

Làm cách nào để chuyển con trỏ tới giá trị mặc định của một loại cụ thể làm tham số?

Chức năng của tôi mong đợi:

void my_function(giá trị void*);

Công việc này:

giá trị tự động = int8_t();
my_function(&value);

Điều này không hoạt động:

my_function(&int8_t());

Tương tự:

my_function(&(int8_t()));

Làm cách nào để chuyển một con trỏ tới một loại cụ thể (trong ví dụ của tôi int8_t) con trỏ tới giá trị mặc định?

câu trả lời hay nhất

Bạn không thể chỉ có được một địa chỉ tạm thời, vì vậy nó sẽ không phù hợp với bạn. Thay vào đó, bạn có thể tạo hàm mẫu trợ giúp trả về giá trị mặc định của loại mong muốn:

mẫu 
const T *defval()
{
giá trị hằng số T tĩnh;
trả lại &giá trị;
}

Điều này có nghĩa trong thực tế là trình biên dịch sẽ giảm giá trị Mỗi loại được sử dụng trong hàm sẽ tạo ra một tĩnh Biến mặc định. Vì vậy, đây chính xác là những gì bạn muốn.

Sau đó, bạn có thể sử dụng nó như thế này:

my_function(defval());

Tuy nhiên, lưu ý rằng bạn nên my_function Chữ ký được thay đổi thành:

void my_function(const void* value);

hằng số được yêu cầu ở đây để đảm bảo rằng nội bộ tĩnh Giá trị sẽ không thay đổi và sẽ giữ nguyên giá trị mặc định.

Vì vậy, mã cuối cùng là:

void my_function(const void *value)
{
(void)giá trị;
}

mẫu
const T *defval()
{
giá trị hằng số T tĩnh;
trả lại &giá trị;
}

int chính()
{
my_function(defval());
trả về 0;
}

Về c++ - chuyển con trỏ tới giá trị loại mặc định làm đối số trong một dòng, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/45834386/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress