小编Ayx*_*xan的帖子

如何在C/Objective-C中跨多行拆分字符串文字?

我有一个很长的sqlite查询:

const char *sql_query = "SELECT statuses.word_id FROM lang1_words, statuses WHERE statuses.word_id = lang1_words.word_id ORDER BY lang1_words.word ASC";
Run Code Online (Sandbox Code Playgroud)

如何在多行中打破它以便于阅读?如果我执行以下操作:

const char *sql_query = "SELECT word_id
                        FROM table1, table2
                        WHERE table2.word_id = table1.word_id
                        ORDER BY table1.word ASC";
Run Code Online (Sandbox Code Playgroud)

我收到了一个错误.

有没有办法在多行中编写查询?

c objective-c

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

C/C++中的字符大小('a')

C和C++中的字符大小是多少?据我所知,char的大小在C和C++中都是1个字节.

在C:

#include <stdio.h>
int main()
{
    printf("Size of char : %d\n", sizeof(char));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在C++中:

#include <iostream>
int main()
{
    std::cout << "Size of char : " << sizeof(char) << "\n";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

没有惊喜,它们都给出了输出: Size of char : 1

现在我们知道,字符表示为'a','b','c','|',...所以我只是修改了上面的代码对这些:

在C:

#include <stdio.h>
int main()
{
    char a = 'a';
    printf("Size of char : %d\n", sizeof(a));
    printf("Size of char : %d\n", sizeof('a'));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

Size of char …
Run Code Online (Sandbox Code Playgroud)

c c++ types

287
推荐指数
4
解决办法
27万
查看次数

Python:如何增加char?

我是Python新手,来自Java和C.如何增加char?在Java或C中,字符和整数实际上是可互换的,在某些循环中,能够通过字符进行增量字符和索引数组非常有用.

我怎么能用Python做到这一点?没有传统的(;;)looper是不够的 - 有什么方法可以实现我想要实现的目标而不必重新考虑我的整个策略?

任何帮助赞赏.

python increment char

98
推荐指数
3
解决办法
12万
查看次数

"IF"价格昂贵吗?

在我的生活中,我不能记住那天老师说的话,我希望你可能知道.

该模块是"数据结构和算法",他告诉我们的一些事情:

if声明是最昂贵的[东西.[东西]注册[东西].

是的,我确实有一个可怕的记忆,我真的很抱歉,但我一直在谷歌搜索几个小时,没有任何事情发生.有任何想法吗?

language-agnostic if-statement branch-prediction

85
推荐指数
10
解决办法
3万
查看次数

strcpy与memcpy

memcpy()和strcpy()有什么区别?我试图在一个程序的帮助下找到它,但两者都提供相同的输出.

int main()
{
    char s[5]={'s','a','\0','c','h'};
    char p[5];
    char t[5];
    strcpy(p,s);
    memcpy(t,s,5);
    printf("sachin p is [%s], t is [%s]",p,t);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

产量

sachin p is [sa], t is [sa]
Run Code Online (Sandbox Code Playgroud)

c memcpy strcpy

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

内置类型的析构函数(int,char等..)

在C++中,以下代码给出了编译器错误:

void destruct1 (int * item)
{
  item->~int();
}
Run Code Online (Sandbox Code Playgroud)

这段代码几乎相同,我只是将int解压缩到另一种类型,并发生了一些神奇的事情:

typedef int myint;

void destruct2 (myint * item)
{
  item->~myint();
}
Run Code Online (Sandbox Code Playgroud)

为什么第二个代码有效?int是否因为已被typedefed而获得析构函数?

如果你想知道为什么一个人想要这样做:这来自重构C++代码.我们正在删除标准堆并将其替换为自制池.这要求我们调用placement-new和析构函数.我知道调用原始类型的析构函数是没用的,但是我们在代码中想要它们,以防我们后来用实际类替换POD.

发现赤裸裸的int不起作用但是类型合适的东西确实令人惊讶.

顺便说一句 - 我有一个涉及模板功能的解决方案.我们只是在模板中输入dede,一切都很好.

c++ constructor destructor typedef

59
推荐指数
1
解决办法
8083
查看次数

用new创建的C++对象,用free()销毁; 这有多糟糕?

我正在修改一个相对较大的C++程序,遗憾的是,我之前是否有人使用过C或C++语法(这是在大学的电气工程系,而且我们的EE总是试图用C代替一切)并不总是很清楚,不幸的是,在这种情况下,人们实际上可以逃脱它).

但是,如果有人创建了一个对象:

Packet* thePacket = new Packet();

是否被摧毁delete thePacket;或是否重要free(thePacket);

我意识到删除调用析构函数而free()没有,但Packet没有析构函数.我在这里陷入了记忆管理沼泽的可怕时间,我想这可能是许多问题之一.

c++ memory-management

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

为什么这个指针为空

在 Visual Studio 中,成员变量的指针似乎在幕后是 32 位有符号整数(即使在 64 位模式下),并且在该上下文中空指针为 -1。所以如果我有一个类:

#include <iostream>
#include <cstdint>

struct Foo
{
    char arr1[INT_MAX];
    char arr2[INT_MAX];
    char ch1;
    char ch2;
};


int main()
{
    auto p = &Foo::ch2;
    std::cout << (p?"Not null":"null") << '\n';
}
Run Code Online (Sandbox Code Playgroud)

它编译并打印“null”。那么,是我造成了某种未定义的行为,还是编译器应该拒绝此代码而这是编译器中的错误?

编辑:

看来我可以保留“2 个INT_MAX数组加 2 个字符”模式,只有在这种情况下,编译器才允许我添加任意数量的成员,并且第二个字符始终被视为空值。见演示。如果我稍微改变了模式(比如在某个时候用 1 或 3 个字符而不是 2 个字符),它会抱怨这个类太大了。

c++ visual-studio language-lawyer

32
推荐指数
2
解决办法
1053
查看次数

是否可以在C++类中使用信号?

我正在做这样的事情:

#include <signal.h>

class myClass {
public: 
    void myFunction () 
    {
        signal(SIGIO,myHandler);
    }

    void myHandler (int signum)
    {
        /**
        * Handling code
        */
    }

}
Run Code Online (Sandbox Code Playgroud)

我正在使用gcc在Ubuntu上工作.

但它不会编译.它抱怨:

错误:类型的参数void (MyClass::)(int)不一致void (*) (int)

有线索吗?或者也许只是我不能在课程中使用信号?信号是否仅允许在C中?

错误消息是近似翻译,因为我的编译器不是英文.

c++ signal-handling

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

如何在WIndows中使用MinGW构建OpenSSL?

我想用MinGW在Windows中构建OpenSSL,
我该怎么做?请帮我.
谢谢.

c++ openssl mingw msys

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