C++ tĩnh

Các hàm tĩnh trong C là các hàm được giới hạn trong cùng một tệp mà chúng được xác định. Các chức năng trong C theo mặc định là toàn cầu. Nếu muốn giới hạn phạm vi hoạt động của hàm, chúng ta sử dụng từ khóa static trước hàm. Làm như vậy, giới hạn phạm vi của hàm trong các tệp khác và hàm vẫn chỉ có thể gọi được trong tệp mà nó được xác định

cú pháp

Cú pháp của hàm tĩnh trong C như sau

static returnType functionName(arguments)
{
    //Here goes the function body
}

Chúng ta sử dụng từ khóa tĩnh cùng với kiểu trả về của hàm trước tên hàm để làm cho hàm tĩnh

Lỗi và ngoại lệ của hàm tĩnh trong C

Các hàm tĩnh không thể được gọi từ các tệp khác vì chúng bị giới hạn trong tệp mà chúng được tạo. Vì vậy, nếu chúng ta tạo một hàm tĩnh, giả sử demo() trong một tệp và gọi nó từ một tệp khác, chúng ta sẽ nhận được “Tham chiếu không xác định đến hàm demo(). ” như một lỗi

Vì vậy, chúng phải luôn được gọi trong tệp mà chúng được tạo

Ví dụ về hàm tĩnh trong C

Chúng ta hãy xem qua một ví dụ về Hàm tĩnh trong C

#include 

//static function
static int addition(int num1, int num2){
    return (num1 + num2);
}

int main()
{
    int num1, num2;
    printf("Enter two nos: ");
    scanf("%d %d", &num1, &num2);
    int sum = addition(num1, num2);
    printf("Sum is : %d", sum);
    return 0;
}

Đầu vào

đầu ra

Giải trình

Trong ví dụ trên, chúng ta sử dụng một hàm gọi là phép cộng để tìm tổng của hai số. Chúng tôi xác định hàm bổ sung là tĩnh. Vì chúng tôi đã xác định hàm trong cùng một tệp mà nó đang được gọi, chúng tôi có thể sử dụng nó để tìm tổng của hai số nguyên do người dùng nhập vào

Vài ví dụ khác

Trong phần này, chúng ta sẽ đi qua nhiều ví dụ hơn bao gồm tất cả các trường hợp chúng ta sử dụng Hàm tĩnh trong C

ví dụ 1. Chương trình gọi một chức năng toàn cầu bên trong một tệp khác

Trong ví dụ này, chúng ta sẽ xem cách một hàm toàn cục được gọi bên trong một tệp khác

Hãy để chúng tôi tạo hai tệp, first_file. c và second_file. c

Trong tệp đầu tiên, chúng tôi tạo một hàm có tên là phép cộng trả về tổng của hai số được truyền cho hàm phép cộng() này

Trong tệp thứ hai, chúng ta đang viết hàm main() gọi hàm cộng từ tệp đầu tiên

first_file. c

//global function
int addition(int num1, int num2){
    return (num1 + num2);
}

second_file. c

#include 
int add(int num1, int num2); 
int main()
{
    int num1, num2;
    printf("Enter two nos: ");
    scanf("%d %d", &num1, &num2);
    int sum = addition(num1, num2);
    printf("Sum is : %d", sum);
    return 0;
}

Đầu vào

đầu ra

Giải trình

Vì phép cộng là một hàm không tĩnh toàn cầu, nên nó có thể được gọi từ cùng một tệp hoặc tệp khác. Như vậy chương trình trên được thực hiện thành công. Chúng tôi lấy hai số từ người dùng và gọi hàm cộng để lấy tổng của chúng. Tổng sau đó được in trên màn hình

ví dụ 2. Chương trình gọi một hàm tĩnh bên trong Tệp khác

Hãy để chúng tôi tạo hai tệp, first_file. c và second_file. c

Trong tệp đầu tiên, chúng tôi tạo một hàm tĩnh có tên là phép cộng để tìm tổng của hai số

Trong tệp thứ hai, chúng ta đang viết hàm main() gọi hàm cộng từ tệp đầu tiên

first_file. c

//static function
static int addition(int num1, int num2){
    return (num1 + num2);
}

second_file. c

#include   

int main()
{
    int num1, num2;
    printf("Enter two nos: ");
    scanf("%d %d", &num1, &num2);
    int sum = addition(num1, num2);
    printf("Sum is : %d", sum);
    return 0;
}

đầu ra

Undefined reference to addition() function.

Giải trình

Các hàm tĩnh được giới hạn trong tệp mà chúng được tạo và không thể được gọi từ tệp khác. Vì chúng ta đang tạo hàm tĩnh add() trong first_file. c và gọi nó từ second_file. c, trình biên dịch đang đưa ra lỗi "Không xác định tham chiếu đến hàm bổ sung (). "

ví dụ 3. Chương trình gọi một hàm tĩnh trong cùng một tệp đối tượng hoặc hàm

Trong ví dụ này, chúng tôi gọi một hàm tĩnh trong cùng một tệp, trong đó nó được tạo

#include 

//static function
static void demo(void) 
{  
    printf ("This is a static function");   
}  


int main()
{
    demo();
    return 0;
}

đầu ra

________số 8

Giải trình

Chúng tôi tạo một hàm tĩnh có tên là demo, hàm này sẽ in ra "Đây là một hàm tĩnh" bất cứ khi nào nó được gọi. Chúng tôi gọi hàm demo từ hàm main() trong cùng một tệp. Do đó, chức năng được gọi và chúng tôi nhận được đầu ra mong muốn trên màn hình

Ví dụ 4. Chương trình gọi nhiều hàm tĩnh trong cùng một tệp

Chúng tôi đang sử dụng hai hàm, một hàm để tìm phép cộng của hai số và một hàm khác để tìm phép trừ của hai số

#include 

//static function1
static int addition(int num1, int num2){
    return (num1 + num2);
}

//static function2
static int subtraction(int num1, int num2){
    return (num1 - num2);
}

int main()
{
    int num1, num2;
    printf("Enter two numbers: ");
    scanf("%d %d", &num1, &num2);
    int sum = addition(num1, num2);
    int diff = subtraction(num1, num2);
    printf("Sum is: %d", sum);
    printf(" and difference is: %d", diff);
    return 0;
}

Đầu vào

đầu ra

#include 

//static function
static int addition(int num1, int num2){
    return (num1 + num2);
}

int main()
{
    int num1, num2;
    printf("Enter two nos: ");
    scanf("%d %d", &num1, &num2);
    int sum = addition(num1, num2);
    printf("Sum is : %d", sum);
    return 0;
}
0

Giải trình

Trong chương trình trên, chúng tôi đang tạo hai hàm tĩnh cộng và trừ và gọi chúng trong cùng một tệp. Như vậy chương trình đang được thực hiện thành công

Tại sao các chức năng tĩnh được yêu cầu?

Đôi khi chúng ta cần tạo các hàm không hiển thị/có thể chia sẻ/có thể gọi được cho các tệp khác tôi. e. , để cung cấp sự trừu tượng. e. g. - Chúng tôi có thể có một số API nội bộ mà chúng tôi không muốn khách hàng nhìn thấy. Do đó, việc tạo một hàm tĩnh, giúp chúng ta giới hạn phạm vi của một hàm trong cùng một tệp mà nó được tạo

Chúng tôi có thể có các chức năng khác nhau với cùng một tên chức năng. Điều này có thể dẫn đến xung đột khai báo. Thay vì sử dụng các hàm toàn cục, nếu chúng ta tạo các hàm tĩnh trong mỗi tệp, thì chúng ta có thể sử dụng tên hàm tương tự trong một tệp khác. Hàm tĩnh giúp chúng ta tránh nhập nhằng khi sử dụng cùng tên hàm trong các tệp khác nhau

C tĩnh là gì?

Hàm tĩnh trong C là hàm có phạm vi giới hạn trong tệp đối tượng của nó . Điều này có nghĩa là hàm tĩnh chỉ hiển thị trong tệp đối tượng của nó. Một hàm có thể được khai báo là hàm tĩnh bằng cách đặt từ khóa tĩnh trước tên hàm.

Tĩnh có nghĩa là gì trong C ==?

Static là một từ khóa trong C và C++ dùng để khai báo một kiểu đặc biệt của một biến hoặc một hàm bên trong hoặc bên ngoài một lớp.

Hàm C có tĩnh không?

Trong C, các chức năng là toàn cầu theo mặc định . Từ khóa "tĩnh" trước tên hàm làm cho nó tĩnh. Ví dụ: hàm fun() bên dưới là tĩnh. Không giống như các hàm toàn cục trong C, quyền truy cập vào các hàm tĩnh bị hạn chế đối với tệp nơi chúng được khai báo.

Số nguyên tĩnh trong C là gì?

1) Một biến int tĩnh vẫn còn trong bộ nhớ khi chương trình đang chạy . Biến bình thường hoặc biến tự động bị hủy khi lệnh gọi hàm nơi biến được khai báo kết thúc. Ví dụ: chúng ta có thể sử dụng int tĩnh để đếm số lần một hàm được gọi, nhưng không thể sử dụng biến auto cho mục đích này.