小编Gra*_*yer的帖子

clang c11 threads.h未找到

我试图在xcode中设置一个c11线程示例...但它似乎没有threads.h标头,虽然它没有抱怨这里描述的宏:
http://www.open-std.组织/ JTC1/SC22/WG14/WWW /文档/ n1570.pdf

__STDC_NO_THREADS__整数常量1,用于指示实现不支持<threads.h>标头.

显示方言 显示错误

c xcode clang c11 threads.h

10
推荐指数
1
解决办法
6264
查看次数

SQLite3查询优化连接与子选择

我试图找出最好的方法,(在这种情况下可能无关紧要)找到一个表的行,基于标志的存在,以及另一个表中的行中的关系id.

这是模式:

    CREATE TABLE files (
id INTEGER PRIMARY KEY,
dirty INTEGER NOT NULL);

    CREATE TABLE resume_points (
id INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL ,
scan_file_id INTEGER NOT NULL );
Run Code Online (Sandbox Code Playgroud)

我正在使用SQLite3

文件表会非常大,通常为10K-5M行.resume_points将小于10K,只有1-2个不同scan_file_id

所以我的第一个想法是:

select distinct files.* from resume_points inner join files
on resume_points.scan_file_id=files.id where files.dirty = 1;
Run Code Online (Sandbox Code Playgroud)

一位同事建议转弯:

select distinct files.* from files inner join resume_points
on files.id=resume_points.scan_file_id where files.dirty = 1;
Run Code Online (Sandbox Code Playgroud)

然后我想,因为我们知道不同的数量scan_file_id会很小,也许子选择是最优的(在这种罕见的情况下):

select * from files where id in (select distinct scan_file_id from resume_points); …
Run Code Online (Sandbox Code Playgroud)

sql database sqlite query-optimization

10
推荐指数
1
解决办法
3757
查看次数

简单的C内联链接器错误

简单的问题:

给出以下程序:

#include <stdio.h>

inline void addEmUp(int a, int b, int * result)
{
    if (result) {
        *result = a+b;
    }
}

int main(int argc, const char * argv[])
{
    int i;
    addEmUp(1, 2, &i);

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

我收到链接器错误...

Undefined symbols for architecture x86_64:
  _addEmUp", referenced from:
      _main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

看起来似乎没有费心去编译它.

它不应该是static,我不会想,基于我读过的内容:
链接器错误内联函数(因为这是在一个不同的对象,并处理2个定义而不是零)

这是一个相关的链接,但它是c ++,我认为在std C中将代码放入头文件中是不错的做法: …

c inline linker-errors

7
推荐指数
1
解决办法
5249
查看次数

对于malloc指针,是否有等效的__attribute __((ns_returns_retained))?

我正在寻找类似的注释

-(SomeStruct *) structFromInternals __attribute__((returns_malloced_ptr))
{
    SomeStruct *ret = malloc(sizeof(SomeStruct));
    //do stuff
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

安抚铿锵静态分析仪的野兽.我能找到的唯一可行的属性链接是GCC,但它甚至没有包含ns_returns_retained,我认为这是扩展中的.

编辑:

至于为什么需要这个,我有一个场景,我不能在一个简单的情况下重新编写,所以它可能与Objective-C项目中的ac lib有关...要点是,我得到一个静态分析器警告createStruct中的malloc被泄露:

typedef struct{
    void * data;
    size_t len;
}MyStruct;

void destroyStruct(MyStruct * s)
{
    if (s && s->data) {
        free(s->data);
    }
    if (s) {
        free(s);
    }
}
MyStruct * createStructNoCopy(size_t len, void * data)
{
    MyStruct * retStruct = malloc(sizeof(MyStruct));
    retStruct->len = len;
    retStruct->data = data;
    return retStruct;
}
MyStruct * createStruct(size_t len, void * data)
{
    char …
Run Code Online (Sandbox Code Playgroud)

c static-analysis objective-c clang

6
推荐指数
1
解决办法
601
查看次数

如何在MIPS arch上获得当前的PC寄存器值?

我想在MIPS上做回溯.然后,我面临一个问题:如何获得当前的PC寄存器值,因为它不属于32个普通寄存器..感谢您的建议..

mips backtrace program-counter

5
推荐指数
1
解决办法
5077
查看次数

使用NSMutableDictionary作为属性的后备存储

我正在寻找一种简单的方法来将我的属性直接设置为NSMutableDictionary,它是一个实例变量.即:

KVCModle.h:

@interface KVModel : NSObject {
    NSMutableDictionary * data;
}
@property(nonatomic,assign)NSString * string1;
@property(nonatomic,assign)NSString * string2;
@end
Run Code Online (Sandbox Code Playgroud)

KVCModel.m

#import "KVModel.h"


@implementation KVModel

-(id)init
{
    self = [super init];
    if(self)
    {
        data = [[NSMutableDictionary alloc] init];
    }
    return self;
}

-(NSString *)string1
{
    return [data objectForKey:@"string1"];
}
-(NSString *)string2
{
    return [data objectForKey:@"string2"];
}
-(void)setString1:(NSString *)_string1
{
    [data setObject:_string1 forKey:@"string1"];
}
-(void)setString2:(NSString *)_string2
{
    [data setObject:_string2 forKey:@"string2"];
}
-(void)dealloc
{
    [data release];
    [super dealloc];
}

@end
Run Code Online (Sandbox Code Playgroud)

我试图重写setValue:ForKey:valueForKey: …

iphone cocoa objective-c ios

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

链接列表的结构声明

typedef struct
{
    int idno;
    char name[max];
    float cgpa;
}student;

struct node
{
    student s;
    Link  next;
};
 typedef struct node Node;
 typedef  Node  *Link;
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为编译器不知道链接,但这是有效的

在函数'main'中:| 错误:未知类型名称'链接'|

typedef struct {
    int idno;
    char name[max];
    float cgpa;
}student;

typedef struct node Node;
typedef  Node  *Link;
struct node
{
    student s;
    Link  next;
};
Run Code Online (Sandbox Code Playgroud)

但是这里编译器在结构声明之前如何知道,因此可以定义它们的类型?

c

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

套接字连接突然用代码141关闭

我尝试做的是连接到远程服务器,从本地计算机上的文件中读取内容并将其发送到服务器.然后捕获服务器响应并保存.我把GET命令放在一个文本文件中,我试着得到相同的结果.这是代码的一部分.我这样做是使用套接字和C.

if ( inet_pton(AF_INET,ip, &(nc_args->destaddr.sin_addr.s_addr)) <= 0 )
    printf("\n\t\t inet_pton error");


if (connect(sockfd, (struct sockaddr *) &nc_args->destaddr, sizeof(&nc_args->destaddr)) < 0)
{
    printf("\n\t\t Connection error");
    exit(1);
}
puts("\n\t\t Connection successful to ...");

// file parameter is taken from command line and passéd to this function

fp = fopen(file,"rb");
if ( fp == NULL)
{
    printf("\n\t\t File not found");
    exit(3);
}

else
{
    printf("\n\t\t Found file %s\n", file);

    fseek(fp, 0, SEEK_END);
    file_size = ftell(fp);
    rewind(fp);

    //allocate memory to the buffer dynamically

    buffer …
Run Code Online (Sandbox Code Playgroud)

c sockets

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

如何布局将C与C++混合的函数原型

我有一个标题,我想包含.c和.cpp文件.

所以我知道名字错误和外部"C"所以......

#ifdef __cplusplus
extern "C"
{
    int isPrime(int64_t p);
}
#endif
Run Code Online (Sandbox Code Playgroud)

但是当我在.c文件中包含它时,由于它没有看到该函数 #ifdef __cplusplus

所以我最终制作了2份:

 #ifdef __cplusplus
    extern "C"
    {
        int isPrime(int64_t p);
    }
 #else
     int isPrime(int64_t p);
 #endif
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点...我想要制作另一个名为prototypes.h的标题,并将其包含在那两个地方......但是我有什么简单的遗漏吗?

c c++ name-mangling extern-c

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

删除NSString中某个字符串之前的所有字符串内容

我试图看看是否有一个简短的方法来做以下事情:

我要说我有以下NSString:
@"123456 copy cat";

我需要删除"复制"之前的所有内容以及文本长度之前的变量(取决于用户输入)

我知道我可以做一个无限循环来检查子字符串,但我希望有一个更快的方法

xcode substring objective-c nsstring

0
推荐指数
1
解决办法
4661
查看次数