找到 1356 篇文章 关于 C

在 C 中,FILE 的数据类型是什么?

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

3K+ 次浏览

在 C 中,我们使用了文件。为了处理文件,我们使用 FILE 类型的指针。因此,FILE 是一种数据类型。这称为不透明数据类型。因此,它的实现是隐藏的。FILE 的定义是特定于系统的。这是 Ubuntu 系统中 FILE 的定义:FILE 定义struct _IO_FILE {    int _flags; /* 高位字是 _IO_MAGIC;其余是标志。 */    #define _IO_file_flags _flags    /* 以下指针对应于 C++ 流缓冲区协议。 */    /* 注意:Tk 直接使用 _IO_read_ptr 和 _IO_read_end 字段。 */    char* _IO_read_ptr; /* 当前读取 ... 阅读更多

C 语言中的卫生宏

Nishtha Thakur
更新于 2019-07-30 22:30:26

474 次浏览

在这里,我们将了解 C 语言中的卫生宏。我们知道宏在 C 语言中的用法。但是,有时由于意外捕获标识符,它不会返回预期的结果。如果我们看到以下代码,我们可以看到它无法正常工作。示例#include #define INCREMENT(i) do { int a = 0; ++i; } while(0) main(void) {    int a = 10, b = 20;    //对 a 和 b 调用两次宏    INCREMENT(a);    INCREMENT(b);    printf("a = %d, b = %d", a, b); }预处理后的代码将如下所示:示例#include #define ... 阅读更多

C 和 C++ 之间的兼容性问题

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

126 次浏览

在这里,我们将看到 C 和 C++ 之间的一些不兼容性。一些可以使用 C 编译器编译的 C 代码,但在 C++ 编译器中无法编译。并且还会返回错误。我们可以使用一种语法来定义函数,该语法可以选择性地在参数列表后指定参数类型。示例#include void my_function(x, y)int x;int y; { // 在 C++ 中无效    printf("x = %d, y = %d", x, y); } int main() {    my_function(10, 20); }输出x = 10, y = 20输出C++ 中的错误:- x 和 y 在此范围内未声明在 C 或某些旧版本的 C++ 中,... 阅读更多

C 语言中 fork() 和 exec() 的区别

Anvi Jain
更新于 2019-07-30 22:30:26

3K+ 次浏览

在这里,我们将了解 C 语言中 fork() 和 exec() 系统调用的效果。fork 用于通过复制调用进程来创建新进程。新进程是子进程。请参见以下属性。子进程有其自己的唯一进程 ID。子进程的父进程 ID 与调用进程的进程 ID 相同。子进程不会继承父进程的内存锁和信号量。fork() 返回子进程的 PID。如果值为非零,则为父进程的 ID,如果为 0,则为 ... 阅读更多

C 语言中的 pthread_self()

Nishtha Thakur
更新于 2019-07-30 22:30:26

8K+ 次浏览

在这里,我们将了解 C 语言中 pthread_self() 的效果。pthread_self() 函数用于获取当前线程的 ID。此函数可以唯一标识现有线程。但是,如果有多个线程,并且一个线程已完成,则可以重用该 ID。因此,对于所有正在运行的线程,ID 都是唯一的。示例#include #include #include void* func(void* p) {    printf("从函数中,线程 ID = %d", pthread_self()); //获取当前线程 ID       pthread_exit(NULL);    return NULL; } main() {    pthread_t thread; //声明线程   ... 阅读更多

C 语言中的 pthread_equal()

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

222 次浏览

pthread_equal() 函数用于检查两个线程是否相等。这将返回 0 或非零值。对于相等线程,它将返回非零,否则返回 0。此函数的语法如下:int pthread_equal (pthread_t th1, pthread_t th2);现在让我们看看 pthread_equal() 的实际应用。在第一种情况下,我们将检查自线程以检查结果。示例#include #include #include #include #include pthread_t sample_thread; void* my_thread_function(void* p) {    if (pthread_equal(sample_thread, pthread_self())) { //pthread_self 将返回当前线程 ID       printf("线程相等");    } else ... 阅读更多

C 语言中的 pthread_cancel()

Anvi Jain
更新于 2019-07-30 22:30:26

622 次浏览

threa_cancel() 用于通过线程 ID 取消特定线程。此函数向线程发送一个取消请求以终止。pthread_cancel() 的语法如下:int pthread_cancel(pthread_t th);现在,让我们看看如何使用此函数取消线程。示例#include #include #include #include int count = 0; pthread_t sample_thread; void* thread_one_func(void* p) {    while (1) {       printf("这是线程 1");       sleep(1); //等待 1 秒       count++;       if (count == 5) {          //如果 ... 阅读更多

C/C++ 中的 nextafter() 和 nexttoward()

Nishtha Thakur
更新于 2019-07-30 22:30:26

205 次浏览

在这里,我们将了解 C 或 C++ 中 nextafter() 和 nextforward() 函数的效果。这些函数存在于 math.h 或 cmath 库中。如果函数类似于 nextafter(a, b) 和 nextforward(a, b)。这些函数用于查找 a 之后朝 b 方向的下一个可表示值。nextforward() 的第二个参数 b 更精确。示例#include #include main () {    //nextafter 函数()    printf ("0 之后朝 1 方向的最小可表示数:%e", nextafter(0.0, 1.0));    printf ("-1 之前朝 0 方向的最大可表示数:%e", nextafter(0.0, -1.0));    printf ("最大正可表示数 ... 阅读更多

关于 C 编程的一些有趣的事实

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

333 次浏览

在这里,我们将了解一些关于 C 编程的有趣事实。它们如下所示。有时,某些 switch 语句的 case 标签可以放在 if-else 语句中。示例#include main() {    int x = 2, y = 2;    switch(x) {       case 1:          ;          if (y==5) {             case 2:                printf("Hello World");          }          else case 3: {             //case 3 块       ... 阅读更多

在 C 中使用 bool

Samual Sam
更新于 2019-07-30 22:30:26

2K+ 次浏览

在 C 中,没有预定义的数据类型为 bool。我们可以使用枚举创建 bool。将创建一个名为 bool 的枚举,然后将 false 和 true 作为枚举的元素。false 将位于第一个位置,因此它将保存 0,true 将位于第二个位置,因此它将获得值 1。现在我们可以将其用作数据类型。示例#include typedef enum {    F, T } boolean; main() {    boolean my_bool1, my_bool2;    my_bool1 = F;    if(my_bool1 == F) {       printf("my_bool1 为假");    } else { ... 阅读更多

广告