小编unw*_*ind的帖子

为什么C预处理器将单词"linux"解释为常量"1"?

为什么GCC中的C预处理器将单词linux(小写字母)解释为常量1

test.c的:

#include <stdio.h>
int main(void)
{       
    int linux = 5;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

结果$ gcc -E test.c(预处理阶段后停止):

....
int main(void)
{
    int 1 = 5;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

哪个 - 当然 - 会产生错误.

(顺便说一句:#define linuxstdio.h文件中没有.)

c linux gcc c-preprocessor

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

以唯一且确定的方式将两个整数映射到一个整数

想象一下两个正整数A和B.我想将这两个整数组合成一个整数C.

可能没有其他整数D和E组合为C.因此将它们与加法运算符组合不起作用.例如30 + 10 = 40 = 40 + 0 = 39 + 1连接也不起作用.例如"31"+"2"= 312 ="3"+"12"

这种组合操作也应该是确定性的(总是在相同的输入下产生相同的结果)并且应该总是在整数的正侧或负侧产生整数.

mapping algorithm math integer deterministic

218
推荐指数
8
解决办法
9万
查看次数

指向指针的指针如何在C中工作?

如何指针指针在C中工作?你什么时候使用它们?

c

164
推荐指数
11
解决办法
12万
查看次数

errno线程安全吗?

errno.h,这个变量被声明为extern int errno;我的问题是,errno在一些调用之后检查值是否安全或在多线程代码中使用perror()是否安全.这是一个线程安全变量吗?如果没有,那么替代方案是什么?

我在x86架构上使用linux和gcc.

c linux multithreading gcc

163
推荐指数
8
解决办法
4万
查看次数

如何在Unix/Linux中获取进程的路径

在Windows环境中,有一个API来获取正在运行进程的路径.在Unix/Linux中有类似的东西吗?

或者在这些环境中还有其他方法吗?

unix linux environment process path

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

我应该选择什么:GTK +或Qt?

有人可以建议今天这些图书馆的最佳用途是什么吗?它只是GUI,还是有数据库,XML,网络,线程等支持?

我正在阅读他们,并考虑开始学习/使用其中一个.

什么是最常见的?他们之间有什么区别?你为什么选择一个而不是另一个?

linux gtk qt

86
推荐指数
5
解决办法
8万
查看次数

构建Android UI的简便方法?

是否有工具或网站可以帮助我使用拖放操作为Android应用程序创建UI?

我找到了这个网站,但想知道是否有更稳定的工具或网站?

user-interface android

82
推荐指数
5
解决办法
13万
查看次数

为什么NULL未声明?

我尝试编译此代码时遇到此结构构造函数的问题:

typedef struct Node
{
    Node( int data ) //
    {
        this->data = data;
        previous = NULL; // Compiler indicates here
        next = NULL;
    }

    int data;
    Node* previous;
    Node* next;
} NODE;
Run Code Online (Sandbox Code Playgroud)

当我来这个错误发生时:

\linkedlist\linkedlist.h||In constructor `Node::Node(int)':|
\linkedlist\linkedlist.h|9|error: `NULL' was not declared in this scope|
    ||=== Build finished: 1 errors, 0 warnings ===|
Run Code Online (Sandbox Code Playgroud)

最后一个问题是结构,但它在我的main.cpp中运行正常,这次是在头文件中并且给我这个问题.我正在使用Code :: Blocks来编译此代码

c++ syntax nodes

79
推荐指数
4
解决办法
17万
查看次数

FD_CLOEXEC fcntl()标志有什么作用?

像这样:

if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) {
...
Run Code Online (Sandbox Code Playgroud)

虽然我读过man fcntl,但我无法弄清楚它的作用.

c

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

在Unix命令行上简洁便携的"加入"

如何将多行连接到一行,使用分隔符表示换行符,并避免使用尾随分隔符,并可选择忽略空行?

例.考虑一个文本文件foo.txt,有三行:

foo
bar
baz
Run Code Online (Sandbox Code Playgroud)

所需的输出是:

foo,bar,baz
Run Code Online (Sandbox Code Playgroud)

我现在使用的命令:

tr '\n' ',' <foo.txt |sed 's/,$//g'
Run Code Online (Sandbox Code Playgroud)

理想情况下它会是这样的:

cat foo.txt |join ,
Run Code Online (Sandbox Code Playgroud)

什么是:

  1. 最便携,简洁,可读的方式.
  2. 使用非标准unix工具的最简洁方法.

当然我可以写一些东西,或者只是使用别名.但我很想知道这些选择.

unix shell

74
推荐指数
4
解决办法
2万
查看次数