相关疑难解决方法(0)

最奇怪的语言特征

在您看来,您遇到的最令人惊讶,奇怪,奇怪或真正的"WTF"语言功能是什么?

每个答案只能有一个功能.

language-agnostic programming-languages

975
推荐指数
176
解决办法
48万
查看次数

C++宏什么时候有用?

ç预处理器有理由担心和C++社区避之唯恐不及.内联功能,功能和模板通常是更安全和更好的替代品#define.

以下宏:

#define SUCCEEDED(hr) ((HRESULT)(hr) >= 0)  
Run Code Online (Sandbox Code Playgroud)

绝不是优于安全类型:

inline bool succeeded(int hr) { return hr >= 0; }
Run Code Online (Sandbox Code Playgroud)

但宏确实有它们的位置,请列出您为宏找到的用途,如果没有预处理器,您就无法做到.

请将每个用例放在一个单独的答案中,以便可以进行投票,如果您知道如何在没有预备教授的情况下实现其中一个答案,请指出该答案的评论.

c++ c-preprocessor

171
推荐指数
19
解决办法
9万
查看次数

C逗号运算符的使用

你看到它用于for循环语句,但它在任何地方都是合法的语法.您在其他地方找到了什么用途,如果有的话?

c c++ comma-operator

88
推荐指数
10
解决办法
2万
查看次数

预处理器中的C#宏定义

C#能否像使用预处理器语句在C编程语言中那样定义宏?我想简化某些重复语句的常规输入,如下所示:

Console.WriteLine("foo");
Run Code Online (Sandbox Code Playgroud)

c# macros c-preprocessor

64
推荐指数
5
解决办法
11万
查看次数

35
推荐指数
3
解决办法
1万
查看次数

C预处理器可以执行整数运算吗?

正如问题所说,C预处理器能够做到吗?

例如:

#define PI 3.1416
#define OP PI/100
#define OP2 PI%100
Run Code Online (Sandbox Code Playgroud)

OP和/或OP2在预处理阶段是否有任何计算方法?

c-preprocessor

22
推荐指数
6
解决办法
6万
查看次数

定义=时的预处理程序错误

我正在尝试一些尴尬的预处理,并得出类似这样的东西:

#include <stdio.h>

#define SIX =6

int main(void)
{
  int x=6;
  int y=2;

  if(x=SIX)
    printf("X == 6\n");
  if(y=SIX)
    printf("Y==6\n");

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

gcc给了我错误:

test.c:在函数'main'中:
test.c:10:8:错误:'='之前的预期表达式
test test.c:12:8:错误:'='之前的预期表达式令牌

这是为什么?

c c-preprocessor

13
推荐指数
2
解决办法
559
查看次数

为什么预处理器的使用在C/C++/ObjC以外的语言中不常见?

我已经是Java和VB.Net程序员已经有4年了,还有一个C#程序员已经有6个月了.我还使用了一堆动态语言,如Perl,Python,PHP和JavaScript.

我从来不需要预处理器.

我的问题是:为什么你会在C,C++和Objective-C中看到如此广泛使用预处理器,但很少(或从不)在Java,C#或Scala等语言中看到它?

c c# java preprocessor

11
推荐指数
3
解决办法
1580
查看次数

为什么某些功能非常长?(学术研究需要的想法!)

我正在写一个关于极长功能的小型学术研究项目.显然,我不是在寻找编程错误的例子,而是寻找100,200和600行长函数的例子.

我将使用为希伯来大学编写的硕士学位编写的脚本来调查Linux内核源代码,该脚本测量不同的参数,如代码行数,函数复杂度(由MCC测量)和其他好东西.顺便说一句,这是一个关于代码分析和推荐阅读材料的简洁研究.

我很感兴趣,如果你能想出为什么任何函数应该特别长的任何好理由?我将研究C,但任何语言的例子和论据都会很有用.

c function code-structure mcc

8
推荐指数
3
解决办法
1233
查看次数

有没有更好的方法来确定多个角色范围?

我目前正在用C编写代码,它从整个ASCII可用字符中选择符号和数字.作为程序员的初学者,我经常这样做

if ((i > 25 && i < 50) || (i > 100 && i < 200)) { contents } 
Run Code Online (Sandbox Code Playgroud)

对于变量i在25~50之间,100~200之间(不包括)以适应条件.

如果我想设置多个范围,如32~64(! to @)和91~96([ to `)和123~126({ to ~)那么会有更好的(意味着更短或更简单的代码)或者我应该坚持使用这种方法,继续添加每个范围如上面的代码?

c ascii range

8
推荐指数
1
解决办法
661
查看次数