找到 34423 篇文章,主题为编程

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

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

6000+ 次浏览

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

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

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

2000+ 次浏览

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

C 程序的内存布局

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

2000+ 次浏览

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

3000+ 次浏览

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

C++ 中的结构体排序

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

1000+ 次浏览

在这里,我们将了解如何在 C++ 中根据结构体中某些成员变量的条件进行排序。在这个例子中,我们将使用一个名为 book 的结构体。book 将包含名称、页数和价格。我们将根据价格对它们进行排序。为了比较两个结构体,我们必须定义一个函数。此函数将使用这些参数进行比较。此比较函数用于排序函数内部以对值进行排序。示例 #include  #include using namespace std; struct book {    string title;    int pages;    float price; }; bool compareBook(book b1,  book b2) {    if(b1.price 阅读更多

C 语言中的多行宏

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

4000+ 次浏览

在本节中,我们将了解如何在 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

2000+ 次浏览

我们将了解如何定义一个名为 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

1000+ 次浏览

我们将了解如果使用负数进行模运算,结果将是什么。让我们看看以下程序及其输出以了解其原理。示例 #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

3000+ 次浏览

让我们看看 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' 也被忽略,因为有一些… 阅读更多

广告
© . All rights reserved.