Tag: 编程语言

对于switch的break语句,是否有更好的编程语言?

语法太多,语法相同: switch (someValue) { case OPTION_ONE: case OPTION_LIKE_ONE: case OPTION_ONE_SIMILAR: doSomeStuff1(); break; // EXIT the switch case OPTION_TWO_WITH_PRE_ACTION: doPreActionStuff2(); // the default is to CONTINUE to next case case OPTION_TWO: doSomeStuff2(); break; // EXIT the switch case OPTION_THREE: doSomeStuff3(); break; // EXIT the switch } 现在你知道所有break语句都是必需的,因为当缺少break语句时, switch将继续下一个case 。 我们有一个OPTION_LIKE_ONE , OPTION_ONE_SIMILAR和OPTION_TWO_WITH_PRE_ACTION 。 问题是我们很少需要这个“跳到下一个案例”。 我们经常在case结束时case 。 […]

将c代码转换为x86程序集的简便方法?

是否有一种简单的方法(如免费程序)可以将c / c ++代码转换为x86程序集? 我知道任何c编译器都做了非常类似的事情,我可以编译c代码,然后反汇编编译的可执行文件,但这有点过分,我想要的只是转换几行代码。 有谁知道一些程序可以做到这一点? 编辑:我知道GCC编译器这样做,但它是AT&T语法,我正在寻找英特尔语法(不确定它是否称为英特尔语法)。 AT&T语法看起来有点像胡言乱语,有些命令以相反的顺序使用操作数,而不是我习惯的方式,它可能会让人感到困惑。

混淆了包含前缀和后缀运算符的printf()

如果int var = 20则如何 printf(“%d %d %d”, var–, ++var, –var); 执行发生在C编程语言中。

为什么我们在C中有无符号和有符号的int类型?

我是C的初学者。 我最近了解了2’s Complement和其他表示负数的方法以及为什么2’s complement是最合适的。 我想问的是,例如, int a = -3; unsigned int b = -3; //This is the interesting Part. 现在,用于转换int类型 标准说: 6.3.1.3有符号和无符号整数 当具有整数类型的值转换为除_Bool之外的另一个整数类型时,如果该值可以由新类型表示,则它将保持不变。 否则,如果新类型是无符号的,则通过重复地添加或减去一个可以在新类型中表示的最大值来转换该值,直到该值在新类型的范围内。 第一段不能用作-3不能用unsigned int表示。 因此第2段开始发挥作用,我们需要知道unsigned int的最大值。 它可以在limits.h中找到UINT_MAX 。 这种情况下的最大值是4294967295因此计算结果如下: -3 + UINT_MAX + 1 = -3 + 4294967295 + 1 = 4294967293 现在4294967293二进制是11111111 11111111 11111111 11111101和-3 in 2的补码forms是11111111 11111111 11111111 11111101所以它们基本上是相同的位表示,无论我想要分配给无符号整数的负整数,它总是相同的。所以不是无符号类型冗余。 现在我知道printf(“%d” , […]

C / C ++中的垃圾值

可能重复: 未初始化的变量如何获得垃圾值? 如何在C和C ++中生成垃圾值? 编译器是否使用一些随机数生成技术来生成垃圾值?

当铸造指针有增量运算符时会发生什么?

例如: int x[100]; void *p; x[0] = 0x12345678; x[1] = 0xfacecafe; x[3] = 0xdeadbeef; p = x; ((int *) p) ++ ; printf(“The value = 0x%08x”, *(int*)p); 编译上面的代码会在++运算符的行上生成一个左值所需的错误。

如何开始编写一个非常简单的编程语言

最近,我在寻找有关今年夏天我可以使用C构建的想法,我发现了这篇文章: 学习C的有趣项目? 实现编程语言。 这不一定非常难 – 我做了一个不能命名的语言 – 但它会迫使你学习C语言的很多重要部分。如果你不想写一个词法分析器和/或解析器你自己,你可以使用lex / flex和yacc / bison,但是如果你打算这样做,你可能想要从一个更小的项目开始。 我对实现编程语言答案很有兴趣,我想知道如何开始这个? 我已经阅读了整本K&R书,我也完成了一些练习。 如果重要的话,我在C ++和Java方面也有一些经验。 有小费吗? 谢谢!

人们如何创建新的编程语言?

我是新手程序员,学习C. 总是让我感到困惑的是人们如何创建新的编程语言? 子/相关问题: 他们用什么语言写的? 语言必须是高级语言和机器代码之间的语言吗? 创建编程语言的阶段/元素是什么?例如 – C或C ++(从我的基础研究中我已经意识到所有编程语言都需要编译器或解释器,但我并不真正理解这两者之间的区别) 正如我所说,我是一个完整的新手,但我对编程非常感兴趣,并且真的想了解更多。 我就像一个真正的垃圾网球运动员,想要了解网球的一切! 我在Google上搜索过它,但无法得到满意的答案。

这在c int a中是什么意思:16;?

可能重复: ‘unsigned temp:3’是什么意思? 请注意这个符号是什么意思 int a:16; 我发现它是这样的代码,它确实编译。 struct name {int a:16; }

printf语句是如何解释的?

GCC编译器如何解释以下行: printf(“HELLO”); 我想知道这个,因为当我运行以下程序时: main() { printf(5+”Good Morning”); } 该程序正在打印: Morning 为什么编译器从第六个字符开始打印?