Hướng dẫn how to assign a function to a variable in c++ - cách gán một hàm cho một biến trong c ++

Tại sao mã trả về sau sau khi biến được khai báo toàn cầu.

int add(int x, int y) {
    return x+y;
}


int ab = add(10, 20);
int main(void) {

    printf("%d", ab);
}

Nhưng nếu tôi gọi như thế này:

int add(int x, int y) {
    return x+y;
}


int main(void) {
    int ab = add(10, 20);  // Variable declare inside main
    printf("%d", ab);
}

Sau đó, nó thực thi mà không có lỗi.

Đã hỏi ngày 21 tháng 5 năm 2013 lúc 7:57May 21, 2013 at 7:57

Hướng dẫn how to assign a function to a variable in c++ - cách gán một hàm cho một biến trong c ++

Ashish Rawatashish RawatAshish Rawat

3.3032 Huy hiệu vàng26 Huy hiệu bạc33 Huy hiệu Đồng2 gold badges26 silver badges33 bronze badges

1

Khởi tạo cho các biến toàn cầu phải không đổi, chúng không thể là một biểu thức tùy ý.

Đã trả lời ngày 21 tháng 5 năm 2013 lúc 7:59May 21, 2013 at 7:59

Hướng dẫn how to assign a function to a variable in c++ - cách gán một hàm cho một biến trong c ++

Trong ngôn ngữ C, bạn không thể thực thi mã trong phạm vi toàn cầu, bên ngoài hàm và lưu trữ giá trị trả về của hàm trong biến toàn cầu.

Các biến toàn cầu phải không đổi khi khởi tạo và khi bạn đang thực hiện:

x = func ( ... )

Sự trở lại của hàm không phải là không đổi.

Đã trả lời ngày 21 tháng 5 năm 2013 lúc 8:00May 21, 2013 at 8:00

Hướng dẫn how to assign a function to a variable in c++ - cách gán một hàm cho một biến trong c ++

Từ phần 3.5.7 Khởi tạo tiêu chuẩn C:

Tất cả các biểu thức trong bộ khởi tạo cho một đối tượng có thời lượng lưu trữ tĩnh hoặc trong danh sách khởi tạo cho một đối tượng có loại tổng hợp hoặc loại liên kết sẽ là các biểu thức không đổi.

ab có thời gian lưu trữ tĩnh nhưng add() không phải là một biểu thức không đổi.

Đã trả lời ngày 21 tháng 5 năm 2013 lúc 8:02May 21, 2013 at 8:02

HMJDHMJDhmjd

118K19 Huy hiệu vàng202 Huy hiệu bạc247 Huy hiệu Đồng19 gold badges202 silver badges247 bronze badges

Các biến toàn cầu có thể được khởi tạo bằng một biểu thức không đổi. Vì các giá trị của chúng được đặt tại thời điểm biên dịch và không phải trong thời gian chạy.compilation time, and not in run-time.

Đã trả lời ngày 21 tháng 5 năm 2013 lúc 8:08May 21, 2013 at 8:08

Hướng dẫn how to assign a function to a variable in c++ - cách gán một hàm cho một biến trong c ++

AlexalexAlex

9.65111 Huy hiệu vàng52 Huy hiệu bạc83 Huy hiệu Đồng11 gold badges52 silver badges83 bronze badges

1

Tôi có hai chức năng,

//virDomain is some struct
int virDomainCreate(virDomain*);
int virDomainDestroy(virDomain*);

Làm cách nào để gán hai chức năng này cho một biến?

Tôi đã thử,

int (*func)(virDomain*) = NULL;
func = virDomainCreate(virDomain*); // not working
func = &virDomainDestroy(virDomain*); //not working

Cảm ơn tất cả sự giúp đỡ của bạn! Waka.

Đã hỏi ngày 10 tháng 3 năm 2014 lúc 19:58Mar 10, 2014 at 19:58

waka-waka-wakawaka-waka-wakawaka-waka-waka

9953 Huy hiệu vàng13 Huy hiệu bạc29 Huy hiệu đồng3 gold badges13 silver badges29 bronze badges

3

Bạn chỉ có thể gán con trỏ cho chức năng như:

func = &virDomainCreate;

Hoặc bạn chỉ có thể sử dụng định dạng ngắn:

func = virDomainCreate;

Đã trả lời ngày 10 tháng 3 năm 2014 lúc 20:01Mar 10, 2014 at 20:01

Hướng dẫn how to assign a function to a variable in c++ - cách gán một hàm cho một biến trong c ++

Arjun Sreedharanarjun SreedharanArjun Sreedharan

10,7K2 Huy hiệu vàng23 Huy hiệu bạc33 Huy hiệu đồng2 gold badges23 silver badges33 bronze badges

2

Loại trả về là int vì vậy

int func;
func = virDomainCreate(virDomain*); 
func = virDomainDestroy(virDomain*);

sẽ làm việc.

Hướng dẫn how to assign a function to a variable in c++ - cách gán một hàm cho một biến trong c ++

Salman Zafar

3.5764 Huy hiệu vàng19 Huy hiệu bạc40 Huy hiệu đồng4 gold badges19 silver badges40 bronze badges

Đã trả lời ngày 10 tháng 3 năm 2014 lúc 20:09Mar 10, 2014 at 20:09

Chúng ta có thể gán một hàm cho một biến trong c không?

Trong ngôn ngữ C, bạn không thể thực thi mã trong phạm vi toàn cầu, bên ngoài hàm và lưu trữ giá trị trả về của hàm trong biến toàn cầu.you cannot execute code in the global scope, outside a function and store the return value of the function in a global variable.

Làm thế nào để bạn gán một hàm cho một biến?

Phương pháp 1: Gán đối tượng hàm cho tên biến mới Một cách đơn giản để hoàn thành tác vụ là tạo tên biến mới G và gán đối tượng hàm f cho biến mới với câu lệnh f = g.create a new variable name g and assign the function object f to the new variable with the statement f = g.

Làm thế nào để bạn khai báo một chức năng trong c?

Tuyên bố chức năng Cơ thể thực tế của hàm có thể được xác định riêng biệt.int max (int, int);Yêu cầu khai báo chức năng khi bạn xác định một hàm trong một tệp nguồn và bạn gọi hàm đó trong một tệp khác.Trong trường hợp như vậy, bạn nên khai báo chức năng ở đầu tệp gọi hàm.int max(int, int); Function declaration is required when you define a function in one source file and you call that function in another file. In such case, you should declare the function at the top of the file calling the function.

Làm thế nào để bạn khai báo một biến trong một hàm trong C#?

Khai báo (tạo) biến loại variablename = value;Trong đó loại là loại C# (như int hoặc chuỗi) và variablename là tên của biến (như x hoặc tên).Dấu bằng được sử dụng để gán các giá trị cho biến.type variableName = value; Where type is a C# type (such as int or string ), and variableName is the name of the variable (such as x or name). The equal sign is used to assign values to the variable.