小编dto*_*och的帖子

检查无符号是否小于零

玩一些来源发现这样的代码:

void foo(unsigned int i)
{
 if(i<0)
     printf("Less then zero\n");
 else
     printf("greater or equ\n");
}

int main()
{
    int bar = -2;
    foo(bar);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我认为没有任何意义,但可能有一些案例(安全性?)使这个检查变得敏感?

c

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

Python结构大小不匹配

我有一些我想从二进制文件中读取的结构.我尝试用于python的struct.这里有一个字符串供阅读:

.... = struct.unpack('I36s36s72sQQIIH4s36s4s20s', datab.read(238))
Run Code Online (Sandbox Code Playgroud)

它工作正常.我通过将值打印到屏幕来看到它.

现在我想将"4s"改为"我".当我将字符串更改为:

.... = struct.unpack('I36s36s72sQQIIHI36s4s20s', datab.read(238))
Run Code Online (Sandbox Code Playgroud)

(先将"4s"更改为"I"),我收到错误:

struct.error: unpack requires a bytes object of length 240
Run Code Online (Sandbox Code Playgroud)

由于文档说"I"大小是4个字节,为什么我的更改会导致错误?

python struct

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

从PHP扩展获取运行脚本的名称

我正在为PHP编写一个小扩展.有没有办法在运行时知道正在运行的脚本文件(例如:)的名称test.php?也许一些全球或环境变量?

php c php-extension php-internals

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

由于ZEND_NUM_ARGS()宏而无法构建扩展

我正在编写小的php扩展,并在构建它时遇到问题.代码:

PHP_RINIT_FUNCTION(pstat)
{
    int argc = ZEND_NUM_ARGS();
    return SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

on make出错了:

.... /ext/pstat/pstat.c:122:31: error: 'ht' undeclared (first use in this function)
Run Code Online (Sandbox Code Playgroud)

ZEND_NUM_ARGS()是Zend_API.h中的一个宏

#define ZEND_NUM_ARGS()     (ht)
Run Code Online (Sandbox Code Playgroud)

但是'什么'是什么?有任何想法吗?

php c php-internals

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

标签 统计

c ×3

php ×2

php-internals ×2

php-extension ×1

python ×1

struct ×1