找到关于C语言的1356篇文章

C语言中的宏与函数

Nishtha Thakur
更新于 2019年7月30日 22:30:25

2K+ 次浏览

在本节中,我们将了解C语言中宏和函数的区别。宏是在预处理阶段处理的,这意味着所有宏将在编译时进行预处理。函数不是预处理的,而是编译的。宏不进行类型检查,因此可能会出现不同类型输入的问题。对于函数,则不会出现这种情况。此外,如果宏的输入没有正确维护,则可能会产生一些无效的结果。请查看以下程序,了解此问题。示例 #include #define SQUARE(x) x ... 阅读更多

将C/C++代码转换为汇编语言

Smita Kapse
更新于 2019年7月30日 22:30:25

6K+ 次浏览

在这里,我们将了解如何使用gcc从C或C++源代码生成汇编语言输出。gcc提供了一个很好的功能,可以在执行源代码时获得所有中间输出。要获得汇编程序输出,我们可以使用gcc的“-S”选项。此选项显示编译后的输出,但在发送到汇编程序之前。此命令的语法如下所示。gcc –S program.cpp现在,让我们看看输出是什么样的。这里我们使用一个简单的程序。在这个程序中,两个数字存储在变量x和... 阅读更多

free()如何知道要释放的内存大小?

Anvi Jain
更新于 2019年7月30日 22:30:25

2K+ 次浏览

free()函数用于释放使用malloc()、calloc()和realloc()分配的内存。free的语法很简单。我们只需使用指向指针的free。然后它可以清理内存。free(ptr);free()不接受任何大小作为参数,只接受指针。所以问题来了,free()函数是如何知道要释放的块的大小?当我们使用动态内存分配技术进行内存分配时,这在实际的堆部分完成。它创建的字比请求的大小多一个。这个额外的字用于... 阅读更多

C程序的内存布局

Nishtha Thakur
更新于 2019年7月30日 22:30:25

2K+ 次浏览

C程序的内存布局如下所示。有几个级别。它们是:栈段、堆段、文本段、数据段。现在让我们看看这些部分的功能。序号 部分及描述 1 栈 进程栈包含临时数据,例如方法/函数参数、返回地址和局部变量。它是为自动变量和函数参数分配的内存区域。它还在执行函数调用时存储返回地址。栈使用LIFO(后进先出)机制来存储局部变量或自动变量、函数参数以及存储下一个地址或返回地址。返回地址是指返回... 阅读更多

C语言中的复合字面量

Smita Kapse
更新于 2019年7月30日 22:30:25

490 次浏览

在本节中,我们将了解C语言中的复合字面量。复合字面量是在C99标准中引入的。使用此功能,可以创建未命名的对象。在下面的示例中,我们将看到如何使用复合字面量来生成没有任何名称的对象。示例 #include struct point {    int x;    int y; }; void display_point(struct point pt) {    printf("(%d,%d)", pt.x, pt.y); } main() {    display_point((struct point) {10, 20}); }输出 (10,20)

C结构体和C++结构体的区别

Nishtha Thakur
更新于 2019年7月30日 22:30:25

3K+ 次浏览

在这里,我们将了解C语言中的结构体和C++中的结构体的区别。C++结构体大多类似于C++中的类。在C结构体中,所有成员都是公共的,但在C++中,它们默认为私有的。其他一些区别列在下面。C结构体 C++结构体 C语言中的结构体不能在结构体内部包含成员函数。C++结构体可以包含成员函数和成员变量。在C语言中,我们不能直接初始化结构体数据。我们可以在C++中直接初始化结构体数据。在C语言中,我们必须编写“struct”关键字来声明结构体类型变量。在C++中,我们不需要使用“struct”... 阅读更多

C语言中的多行宏

Anvi Jain
更新于 2019年7月30日 22:30:25

4K+ 次浏览

在本节中,我们将了解如何在C语言中编写多行宏。我们可以像函数一样编写多行宏,但是对于宏,每一行都必须以反斜杠“\”字符结尾。如果我们使用花括号“{}”并且宏以“}”结尾,则可能会产生一些错误。因此,我们可以将整个内容括在括号中。请查看以下程序,了解多行宏。示例 #include #define PRINT(x, str) ({\    printf("The number %d", x);\    printf(" is ");\    printf(#str);\    printf("");\ }) int main() {    int x = 10;    if(x % 2 == 0){       PRINT(x, EVEN);    } }输出 The number 10 is EVEN

编写一个C宏PRINT(x),用于打印x

Nishtha Thakur
更新于 2019年7月30日 22:30:25

2K+ 次浏览

在这里,我们将了解如何定义一个名为PRINT(x)的宏,它将打印作为参数传递的x的值。为了解决这个问题,我们将使用字符串化运算符。使用此运算符,x将转换为字符串,然后通过在内部调用printf()函数,x的值将被打印。让我们看看这个例子,以便更好地理解。示例 #include #define PRINT(x) printf(#x) int main () {    PRINT(Hello);    printf("");    PRINT(26);    printf("");    PRINT(2.354721);    printf(""); }输出 Hello 26 2.354721

C语言中负数的模运算

Smita Kapse
更新于 2019年7月30日 22:30:25

1K+ 次浏览

在这里,我们将了解如果我们使用负数进行模运算,结果将是什么。让我们看看以下程序及其输出,以便了解。示例 #include int main() {    int a = 7, b = -10, c = 2;    printf("Result: %d", a % b / c); }输出 Result: 3这里%和/的优先级相同。所以%先运算,所以a % b生成7,现在除以c后,生成3。这里对于a % b,左操作数的符号附加到... 阅读更多

C语言中的扫描集

Nishtha Thakur
更新于 2019年7月30日 22:30:25

3K+ 次浏览

让我们看看C语言中的扫描集是什么。扫描集基本上是由scanf系列函数支持的说明符。它由%[ ]表示。在扫描集中,我们只能指定一个字符或一组字符(区分大小写)。当处理扫描集时,scanf()只能处理扫描集中提到的那些字符。示例 #include int main() {    char str[50];    printf("Enter something: ");    scanf("%[A-Z]s", str);    printf("Given String: %s", str); }输出 Enter something: HElloWorld Given String: HE它忽略了小写字母。'W'也被忽略,因为有一些... 阅读更多

广告