找到 1356 篇文章 关于 C

如何在 C 中计算可变数量的参数?

Nitya Raut
更新于 2019-07-30 22:30:25

2K+ 阅读量

在本节中,我们将了解如何在 C 中处理可变数量参数的情况下计算参数的数量。C 支持省略号 (...)。这用于向函数传递可变数量的参数。用户可以通过三种不同的方法之一来计算参数的数量。通过将第一个参数作为参数的计数传递通过将最后一个参数作为 NULL 传递。使用类似于 printf() 或 scanf() 的逻辑,其中第一个参数包含其他参数的占位符。在下面的程序中,我们将计算传递的可变参数的总数。示例代码#include #include int get_avg(int count, ...) {   ... 阅读更多

在 C 中 main() 函数前后执行的函数

Vrundesha Joshi
更新于 2019-07-30 22:30:25

3K+ 阅读量

在这里,我们将了解如何编写一个代码,其中存在两个函数,一个函数将在 main 函数之前执行,另一个函数将在 main 函数之后执行。这些功能用于在执行 main 之前执行一些启动任务,并在执行 main 之后执行一些清理任务。要执行此任务,我们必须为这两个函数添加属性。当属性为构造函数属性时,它将在 main() 之前执行,而当属性为析构函数类型时,它将在 main() 之后执行。示例代码#include void before_main() __attribute__((constructor)); void after_main() __attribute__((destructor)); ... 阅读更多

函数原型在 C 中的重要性

Jennifer Nicholas
更新于 2019-07-30 22:30:25

5K+ 阅读量

在这里,我们将了解为什么应该在 C 中使用函数原型。函数原型用于告诉编译器函数的参数数量和所需的数据类型,它还告诉编译器函数的返回类型。通过此信息,编译器在调用函数之前会交叉检查函数签名。如果没有提到函数原型,则程序可能会编译出一些警告,有时还会生成一些奇怪的输出。如果某个函数在某个地方被调用,但其主体尚未定义,即在当前行之后定义,则... 阅读更多

使用 fork() 在 C 中创建多个进程

Nitya Raut
更新于 2019-07-30 22:30:25

2K+ 阅读量

在本节中,我们将了解如何使用 fork() 在 C 中创建子进程。我们还在每个进程中执行一些不同的任务。因此,在我们的父进程中,我们将打印不同的值。当调用 fork() 时,它会返回一个值。如果该值大于 0,则当前位于父进程中,否则位于子进程中。因此,使用它我们可以区分进程。示例代码#include #include int main() {    int n = fork(); //分割进程    if (n > 0) { //当 n 不为 0 时,则位于... 阅读更多

什么是 C 中的动态内存分配?

Jennifer Nicholas
更新于 2019-07-30 22:30:25

2K+ 阅读量

在这里,我们将了解 C 中的动态内存分配。C 编程语言提供了一些用于内存分配和管理的函数。这些函数可以在头文件中找到。以下是一些用于内存分配的函数。函数描述void *calloc(int num, int size);此函数分配一个包含 num 个元素的数组,每个元素的大小(以字节为单位)为 size。void free(void *address);此函数释放由 address 指定的内存块。void *malloc(int num);此函数分配一个包含 num 个字节的数组,并将其保留为未初始化状态。void *realloc(void *address, int newsize);此函数重新分配内存,将其扩展到 newsize。动态分配内存在编程时,如果... 阅读更多

在 C 中获取和设置线程属性的栈大小

Smita Kapse
更新于 2019-07-30 22:30:25

1K+ 阅读量

要在 C 中获取和设置线程属性的栈大小,我们使用以下线程属性:pthread_attr_getstacksize()用于获取线程栈大小。栈大小属性给出了分配给线程栈的最小栈大小。如果运行成功,则返回 0,否则返回任何值。它有两个参数:pthread_attr_getstacksize(pthread_attr_t *attr, size_t *stacksize)第一个用于 pthread 属性。第二个用于提供线程属性的大小。pthread_attr_setstacksize()用于设置新线程栈的大小。栈大小属性给出了分配给线程栈的最小栈大小。如果运行成功,则返回 0,否则返回... 阅读更多

C 中的八进制字面量

Jennifer Nicholas
更新于 2019-07-30 22:30:25

4K+ 阅读量

在 C/C++ 中,我们可以通过在实际数字前键入一个零来使用八进制字面量。例如,如果八进制数为 25,则我们必须写 025。示例代码#include int main() {    int a = 025;    int b = 063;    printf("25(八进制)的十进制是 %d", a);    printf("63(八进制)的十进制是 %d", b); }输出25(八进制)的十进制是 21 63(八进制)的十进制是 51

使用 C/C++ 和 SQLite 的 SQL

Nitya Raut
更新于 2019-07-30 22:30:25

2K+ 阅读量

在本节中,您将学习如何在 C/C++ 程序中使用 SQLite。安装在开始在我们的 C/C++ 程序中使用 SQLite 之前,您需要确保机器上已设置了 SQLite 库。您可以查看 SQLite 安装章节以了解安装过程。C/C++ 接口 API以下是一些重要的 C/C++ SQLite 接口例程,它们可以满足您从 C/C++ 程序中使用 SQLite 数据库的要求。如果您正在寻找更复杂的应用程序,则可以查看 SQLite 官方文档。序号API 及描述1sqlite3_open(const char *filename, sqlite3 **ppDb)此例程打开到 SQLite 的连接... 阅读更多

如何在单个 C 程序中执行僵尸进程和孤儿进程?

Vrundesha Joshi
更新于 2019-07-30 22:30:25

2K+ 阅读量

在本节中,我们将了解如何在 C/C++ 中的单个程序中执行僵尸进程和孤儿进程。在进入主要讨论之前,让我们先了解什么是僵尸进程和孤儿进程。僵尸进程僵尸进程是指其执行已完成但仍在进程表中存在条目的进程。僵尸进程通常发生在子进程中,因为父进程仍然需要读取其子进程的退出状态。一旦使用 wait 系统调用完成此操作,僵尸进程就会从进程表中删除。这称为回收僵尸进程。这... 阅读更多

使用 C/C++ 的数据库连接

Jennifer Nicholas
更新于 2019-07-30 22:30:25

3K+ 阅读量

在本节中,您将学习如何在 C/C++ 程序中使用 SQLite。安装在开始在我们的 C/C++ 程序中使用 SQLite 之前,您需要确保机器上已设置 SQLite 库。您可以查看 SQLite 安装章节以了解安装过程。C/C++ 接口 API以下是一些重要的 C/C++ SQLite 接口例程,它们可以满足您从 C/C++ 程序中使用 SQLite 数据库的要求。如果您正在寻找更复杂的应用程序,则可以查阅 SQLite 官方文档。序号API 及描述1sqlite3_open(const char *filename, sqlite3 **ppDb)此例程打开与... 阅读更多

广告