小编ely*_*hiv的帖子

math.h默认包含在Objective-C中

我有一个目前在Windows,Linux和iOS上运行的多平台项目,但是我偶然发现了Objective-C的不良问题。

不幸exp的是,我为我的一种类型选择了名称(表达式,考虑到我的代码中出现的次数,这是相当合理的),但是Objective-C math.h默认情况下以某种方式包含了标题,从而产生了名称冲突。

我试图注释掉.pch(默认在每个源文件之前包含的前缀文件)中的所有内容,并且exp仍标记为重定义。

有人知道如何在Objective-C项目的源文件中包含math.h吗?

objective-c include

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

功能调用太多了

我编写了以下解析csv文件的代码:

var result = FullFile.Split('\n')
  .Select(s => new 
  { FirstName = s.Split(',')[(int)FirstName.Value],
  SirName = s.Split(',')[(int)sirName.Value],
  garde = s.Split(',')[(int)Grade.Value] });
Run Code Online (Sandbox Code Playgroud)

现在,我使用Split相同的参数,并在同一个对象上使用该函数太多次.

有没有办法继续使用lambada表达式,并减少这个函数调用?

欢迎对我的编码提出任何其他意见

c# linq lambda

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

gcc如何分配静态运行时间已知的数组长度

我写了以下代码:

int tester(int n)
{
    int arr[n];
    // ...
}
Run Code Online (Sandbox Code Playgroud)

这段代码使用g ++编译,没有警告.

我的问题是 - 如何?参数n在运行时是已知的,在数组中是静态分配的.gcc是如何编译的?

c++ gcc static-allocation

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

为什么 ls 不能与 execvp 一起使用?

我有一个作业要求我编写一个迷你 shell - 它将获取要执行的命令,执行它,然后等待更多命令。

当我将命令传递给这个迷你 shell 时,ls .它会打印当前目录的竞赛。当我传递给它时,ls它什么也没打印。为什么?

这是我的代码:

#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <string.h>
#include <unistd.h>
#include <assert.h>
#include <stdlib.h>
#include <stdbool.h>
#define MAX_CMD_SIZE 40
char** parse(char*);//will parse the arguments for the execv/excevp commands.

int main(int argc, char** argv)
{
    bool debug = false;
    assert(argc <= 2);
    if (argc == 2)
    {
        //check for string -debug
        debug = true; 
    } 
    if (debug)
        printf("INFO: Father started PID[%d]\n", getpid());
    char *command = malloc(MAX_CMD_SIZE);
    while(true)
    { …
Run Code Online (Sandbox Code Playgroud)

c linux exec

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

为什么2D数组上的指针算法有效?

我写了以下代码:

#include <iostream>
using namespace std;

int main()
{
    int a[10][10];
    for (int i = 0; i < 10; i++)
        for (int j = 0; j < 10; j++)
            a[i][j] = i * j;
    cout << *(*(a + 3) + 4) << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我期待它打印一些垃圾数据或分段错误.我得到的是12.我用c和c ++(分别使用gcc和g ++)对它进行了测试,虽然我没有对此进行测试,但我在VS上的工作原理相同.为什么这样做,是否有这种行为的官方文档?

c c++ pointer-arithmetic multidimensional-array

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

如果我没有实现部分方法会发生什么?

我使用SQLMetal生成了一些代码并使用了一段时间.刚才,我查看了生成的代码,并在每个类中喜欢了一些我从未实现的部分函数,​​也没有通过SQLMetal实现.这些函数在代码中调用.我想知道 - 当我调用这样的函数时会发生什么 - 那不存在?

c# partial

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

为什么代码调用析构函数两次?

我看了一下这个演示文稿,在幻灯片379中,它显示了以下代码(稍作修改):

#include <iostream>
using namespace std;

struct A
{
    A() { cout << "A()" << endl; }
    A(int v) { cout << "A(int)" << endl; }
    ~A() { cout << "~A()" << endl; }
};

struct X
{
    X(int v) { a = v; }
    X(long v) : a(v) {}
    A a;
};

int main()
{
    cout << "bad style:" << endl;
    { X slow(int(2)); }
    cout << "good style:" << endl;
    { X fast(long(2)); }
}
Run Code Online (Sandbox Code Playgroud)

输出是: …

c++ destructor

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

为什么编译器只为int保留0x10位?

我有以下代码:

#include <iostream>
using namespace std;

void f()
{
    cout << "hello" << endl;
}

void f(int i)
{
    cout << i << endl;
}

int main()
{
    f();
    f(0x123456);
}
Run Code Online (Sandbox Code Playgroud)

我使用g++它编译它,然后使用它进行反汇编objdump -Mintel -d,我得到了以下主要功能:

 08048733 <main>:
 8048733:   55                      push   ebp
 8048734:   89 e5                   mov    ebp,esp
 8048736:   83 e4 f0                and    esp,0xfffffff0
 8048739:   83 ec 10                sub    esp,0x10
 804873c:   e8 9b ff ff ff          call   80486dc <_Z1fv>
 8048741:   c7 04 24 56 34 12 00    mov    DWORD …
Run Code Online (Sandbox Code Playgroud)

c++ x86 assembly stack

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

Python映射不等长列表

在lisp中,我曾经做过类似的事情,知道它不会崩溃:

 [3]> (mapcar #'+ '(1 2 3) '(1 2))
(2 4)
Run Code Online (Sandbox Code Playgroud)

python中的等价物似乎崩溃了:

>>> map(lambda x,y : x + y, [1,2,3], [1,2])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 1, in <lambda>
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'
Run Code Online (Sandbox Code Playgroud)

python中的函数是否与不等长度列表上的lisp版本一样工作?或者,有没有办法改变地图的行为?

python

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

合并超大文本文件的最佳方法

我有几个文本文件,我想将它们合并为一个。包含所有单独文本文件的文件夹大小接近 8Gb。我在 powershell 中尝试了以下操作:

cat example*.txt | sc allexamples.txt
Run Code Online (Sandbox Code Playgroud)

但一旦组合文件的大小达到接近 800 Mb,笔记本电脑就会挂起,我无法继续操作。我可以通过其他方式做到这一点吗?

powershell text cmd combiners

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

Android中使用Eclipse的"令牌ID上的语法错误"

我在包map1中有一个这样的类:

import android.graphics.Bitmap;

public class Map {

    public Bitmap Structure;

    public String name;

    public Integer ID;
}
Run Code Online (Sandbox Code Playgroud)

在不同的项目中,有以下代码:

public class dummy {
    map1.Map MM = new map1.Map();
    MM.ID = 5;//this line is a error: "Syntax error on token "ID", VariableDeclaratorId expected after this token"
}
Run Code Online (Sandbox Code Playgroud)

我检查了参考文献,一切都没问题(据我所知)
我有一个不同的,一切正常.我找不到任何显着的差异,但我对eclipse很新.

为什么会这样,我如何让我的第二个项目工作?

java eclipse android

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

java if语句似乎不起作用

我的项目中有以下代码:

private void initCS() {
    CarsMakerData cmd = NetWorkData.data[key - 1];
    if (cmd.portClient != 0);
    {
        System.out.println(cmd.portClient);
        client = new CarsMakerClient(this, cmd.ipClient, cmd.portClient);
        client.start();
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

770
0
0
0
Run Code Online (Sandbox Code Playgroud)

我期待770但不是0 ......

该数组NetWorkData.data在静态构造函数中初始化.key在函数的所有四次调用中都是唯一的.

任何人都可以解释为什么我得到那些零?这可能是因为多线程吗?

(我在Linux系统上使用eclipse,使用OpenJDK 2.4.7)

java

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