小编Jim*_*ion的帖子

C 中数组索引(相对于表达式)的求值顺序

看看这段代码:

static int global_var = 0;

int update_three(int val)
{
    global_var = val;
    return 3;
}

int main()
{
    int arr[5];
    arr[global_var] = update_three(2);
}

Run Code Online (Sandbox Code Playgroud)

哪个数组条目得到更新?0 还是 2?

C 的规范中是否有部分指示在这种特殊情况下操作的优先级?

c language-lawyer order-of-execution

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

在Windows上使用C中的线程.简单的例子?

我需要什么以及如何在Windows Vista上使用C语言中的线程?

你能给我一个简单的代码示例吗?

c windows multithreading semaphore

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

了解JSON结构 - 属性和值

有点困扰我.我在一些应用程序/网站中使用过JSON,我们都喜欢它!然而今天有些东西进入了我的脑海,这是我从未想过的......看看下面的例子(这是来自http://json.org/example.html):

{"widget": {
    "debug": "on",
    "window": {
        "title": "Sample Konfabulator Widget",
        "name": "main_window",
        "width": 500,
        "height": 500
    },
    "image": { 
        "src": "Images/Sun.png",
        "name": "sun1",
        "hOffset": 250,
        "vOffset": 250,
        "alignment": "center"
    },
    "text": {
        "data": "Click Here",
        "size": 36,
        "style": "bold",
        "name": "text1",
        "hOffset": 250,
        "vOffset": 100,
        "alignment": "center",
        "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
    }
}}  
Run Code Online (Sandbox Code Playgroud)

现在,如果将其表示为XML:我们将具有以下内容:

<widget>
    <debug>on</debug>
    <window title="Sample Konfabulator Widget">
        <name>main_window</name>
        <width>500</width>
        <height>500</height>
    </window>
    <image src="Images/Sun.png" name="sun1">
        <hOffset>250</hOffset>
        <vOffset>250</vOffset>
        <alignment>center</alignment>
    </image>
    <text data="Click …
Run Code Online (Sandbox Code Playgroud)

javascript json

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

在python中读取文件中的下一个单词

我正在寻找python中的文件中的一些单词.找到每个单词后,我需要从文件中读取下两个单词.我找了一些解决方案,但我找不到只读下一个字.

# offsetFile - file pointer
# searchTerms - list of words

for line in offsetFile:
    for word in searchTerms:
        if word in line:
           # here get the next two terms after the word
Run Code Online (Sandbox Code Playgroud)

感谢您的时间.

更新:只需要第一次出现.实际上在这种情况下只能出现一个单词.

文件:

accept 42 2820 access 183 3145 accid 1 4589 algebra 153 16272 algem 4 17439 algol 202 6530
Run Code Online (Sandbox Code Playgroud)

字:['access','algebra']

当我遇到'access'和'algebra'时搜索文件,我需要分别为183 3145和153 16272的值.

python

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

我想从子进程中获取 stdout 和 stderr

我只想做这样的事情:

>>bar, err_value = subprocess.check_output("cat foo.txt", shell=True)
>>print bar
>>Hello, world.
>>print err_value
>>0
Run Code Online (Sandbox Code Playgroud)

但我似乎做不到。我可以获取标准输出、错误代码(通过 .call),或者两者都可以,但需要使用某种管道。我在这里缺少什么?关于这个(对我来说)明显的功能的文档非常稀疏。抱歉,如果这是一个简单的问题。

python subprocess stdout

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

使用python确定时间戳是否在夏令时之下

这不起作用:

t = os.path.getmtime(filename)
dTime = datetime.datetime.fromtimestamp(t)
justTime = dTime.timetuple()
if justTime.tm_isdst == 0 :
    tDelta = datetime.timedelta(hours=0)
else:
    tDelta = datetime.timedelta(hours=1)
Run Code Online (Sandbox Code Playgroud)

相反,条件总是等于 1,尽管某些时间戳在白天的节省时间内。

我正在尝试使 python 调用与基于 c 的调用的行为相匹配。

python datetime pytz dst

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

使用 Py_SetPath() 让 Python 在不同位置查找 Lib

我已将 Python 嵌入到应用程序中,foo.exe. 当它运行时,Python 被调用并立即查找Lib. 我可以让它工作的唯一方法是将Lib(Python 的模块目录库)放在foo.exe.

有没有办法可以将Python重定向到其他地方,例如Python/Lib?我无法更改PATH(这是 Windows)并且我不想破解 Python 源代码。

基本上,我无法让 Py_SetPath() 工作,并且我无法在互联网上找到任何实际示例。

更新:

好的,这有效:

  #define MYMAXPATHLEN 1000
  static wchar_t progpath[MYMAXPATHLEN + 1];

  wchar_t* pdir = L"\\My_New_Location\\Python\\Lib";
  wchar_t* pdelim = L";";
  wchar_t* pypath = NULL;
  GetModuleFileNameW(NULL, progpath, MYMAXPATHLEN);
  reduce(progpath);
  wcscat(progpath,pdir);
  // I get the present module path and add the extra dirs to access Lib code

  wcscat(progpath, pdelim);  // I add a path delimiter

  pypath = Py_GetPath(); …
Run Code Online (Sandbox Code Playgroud)

python python-module python-3.x lib

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

Python ctypes返回一个函数指针数组

我正在使用包含单个调用的.dll,它返回一个函数指针数组.GetMyApi()返回一个指向结构的指针,该结构是一个函数指针数组.功能本身具有不同的单独输入和输出.到目前为止我尝试了什么:

[我不能轻易改变的C代码] C:

typedef struct My_Api_V2
{
    int                 (__cdecl *IsValidInt)(int i);
    int                 (__cdecl *InvalidInt)();
    int                 (__cdecl *IsValidSize)(size_t i);
} my_Api_V2;

const my_Api_V2* GetMyApi(int version);   // This function is accessed from DLL
Run Code Online (Sandbox Code Playgroud)

Python努力:

from ctypes import *

my_dll = cdll.LoadLibrary(path_to_my_dll)
my_api = my_dll.GetMyApi
my_api.argtypes[c_int]  #version number
my_api.restypes = c_void_p

firstfuncptr = my_api(2)
firstfunc = prototype(firstfuncptr)
firstfunc.argtypes[c_int]
firstfunc.restypes = c_int

test = firstfunc(23)
Run Code Online (Sandbox Code Playgroud)

此时,我只是想让函数列表的第一个函数返回工作.任何帮助指向我更好的方向的人都表示赞赏.

python ctypes function-pointers

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

Nuget不会将Entity Framework安装到C++/CLI项目中

我认为这个问题已得到修复.我正在使用Visual Studio 2013,它是Entity Framework 6.1.我收到错误消息:PublicKeyToken = xxxxxx未标记为可序列化.

我以为这是固定的.它是否再次被打破,如果是这样,是否有解决方法?

谢谢.

尝试安装到win32 C++控制台应用程序时,这是完整的错误消息.(使用默认设置构建,没有其他内容添加到新版本.)错误:在程序集'Microsoft.VisualStudio.Project.VisualC.VCProjectEngine,Version = 12.0.0.0,Culture中键入'Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCProjectShim' =中性,PublicKeyToken = b03f5f7f11d50a3a'未标记为可序列化.

尝试安装到C++ CLR时,这是完整的错误消息:(实际上,它是完全相同的错误消息.)

尝试安装到常规空C++项目时,这是完整的错误消息:(同样,错误消息相同.)

entity-framework c++-cli visual-studio

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

在Pthreads中使用malloc

这是来自Pthreads的实际C代码:

ThreadParms *parms = NULL; 
if ((parms = (ThreadParms *) malloc (sizeof (*parms))) == NULL)
    {
      goto FAIL0;
    }

  parms->tid = thread;
  parms->start = start;
  parms->arg = arg;
Run Code Online (Sandbox Code Playgroud)

他们为什么选择malloc*parms而不是ThreadParms?看起来它只分配一个指针(这将是一个错误),但它显然分配了整个结构的大小.它是否正确?

c malloc pointers sizeof

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