Tag: 变量

C编译器如何使用可变数量的参数实现函数?

几天前我参加了一次技术面试,有人问我C编译器的implments如何使用可变数量的参数? 它是如何通过堆栈的? 有人知道或可以探索吗? 谢谢,丹

覆盖文本文件中的特定行?

如何在c?中覆盖文本文件中的特定行? 我在需要写入文件的多个变量中有值。

重用变量是好还是坏?

如果我尽可能地重用变量名,我想知道它是好还是坏(或无关紧要)? 例如 int main(void){ //… int x=0; //.. x = atoi(char_var); //.. for (x=0; x<12; x++){ //… } //.. x = socket(…) if(x<0){ //… } for(x=0;x<100;x++{ //… } return 0; } 可以使用另一个变量而不是上面的x (可能更好的可读性),但我想知道它是否会为二进制大小,性能或其他任何东西带来任何好处?

为什么在编程中使用常量?

我刚刚回过头来学习使用Ivor Horton的Beginning C书。 我对于声明常量似乎与同一句子中的变量混淆了一点。 只是为了澄清一下,在C中指定常量和变量有什​​么区别,实际上,何时需要使用常量而不是变量? 我知道人们说在程序执行期间信息没有改变时使用常量,但我真的不能想到不能使用变量的时候。

C:将可变数量的参数从一个函数传递到另一个函数

所以,这是我现在面临的一个小问题 – >我正在尝试编写一个接受char *消息和可变数量参数的函数。 我的函数会稍微修改一下消息,然后它会用消息和给定的参数调用printf。 实际上,我正在尝试写这样的东西: void modifyAndPrintMessage(char* message,…){ char* newMessage; //copy message. //Here I’m modifying the newMessage to be printed,and then I’d like to print it. //passed args won’t be changed in any way. printf(newMessage,…); //Of course, this won’t work. Any ideas? fflush(stdout); } 所以,任何人都知道我该怎么做才能实现它? 我会非常感谢任何帮助:)

声明与global,local和static同名的变量

我有以下代码片段,我必须分析输出将是什么: #include void f(int d); int a = 1, b = 2, c = 3, d = 4; int main(){ int a = 5, c = 6; f(a); f(b); f(c); printf(“%d %d %d %d\n”,a,b,c,d); return 0; } void f(int d){ static int a = 0; a = a + 7; b = a + d; […]

C宏 – 检查变量是否为指针

刚开始考虑这一点,并想知道是否有一些“好”的方法来检查传递给c中的宏的变量是否是一个指针? 即: #define IS_PTR(x) something int a; #if IS_PTR(a) printf(“a pointer we have\n”); #else printf(“not a pointer we have\n”); #endif 这个想法并不是说这是在运行时完成而是编译时间,如下所示:我们根据变量是否为指针得到不同的代码。 所以我希望IS_PTR()以某种方式评估某种常量表达式。 我是怎么回事这个想法的? 这一切都有可能吗?在这种情况下会怎样做? 提前致谢!

在范围的开头声明C89局部变量?

我试图在ANSI C中这样做: include int main() { printf(“%d”, 22); int j = 0; return 0; } 这在Microsoft Visual C ++ 2010(在ANSI C项目中)不起作用。 你收到一个错误: error C2143: syntax error : missing ‘;’ before ‘type’ 这确实有效: include int main() { int j = 0; printf(“%d”, 22); return 0; } 现在我在许多地方读到你必须在变量存在的代码块的开头声明变量。这通常适用于ANSI C89吗? 我找到了许多人们提出这个建议的论坛,但我没有看到它写在任何“官方”来源,如GNU C手册。

#Define VS Variable

我无法理解有什么区别: #define WIDTH 10 和 int width = 10; 使用第一个或第二个有什么好处?

初始化变量

声明和初始化变量或仅声明它更好吗? 什么是最好和最有效的方式? 例如,我有这个代码: #include int main() { int number = 0; printf(“Enter with a number: “); scanf(“%d”, &number); if(number < 0) number= -number; printf("The modulo is: %d\n", number); return 0; } 如果我没有初始化number ,代码工作正常,但我想知道,它更快,更好,更有效吗? 初始化变量是否合适?