小编Ash*_*wat的帖子

N中的NUL和NULL是否可以互换?

只需阅读Kenneth Reek的C书上的指针.它表示一个NUL字节是一个位为全0的字节,这样写'\0',NULL的值为0,它指的是一个值为零的指针.

两者都是整数并且具有相同的值,因此它们可以互换使用.

这段代码也是:

char const *keyword[] = { "do", "for", "if", "register", 
                              "return", "switch", "while", NULL };
Run Code Online (Sandbox Code Playgroud)

在此代码中,NULL允许搜索表的函数检测表的结尾.那么,我们可以互换NULL和NUL宏吗?

c c++

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

为什么我们不能在没有new运算符的情况下调用Date()类的方法

假设我定义了一个这样的变量

var today = Date();
console.log(today.getMonth()); // Throw Error
Run Code Online (Sandbox Code Playgroud)

而其他类如Error类在没有new运算符的情况下调用它们的方法.

function factorial(x) {
 if(x <= 1)
   throw Error("x must not be negative");
 return x*factorial(x-1);
}
Run Code Online (Sandbox Code Playgroud)

包装器对象(数字,布尔值,字符串)也可以在没有new运算符的情况下调用它们的方法.那么,在调用它们的方法之前,这是唯一需要新操作符或任何对象创建技术的类.

编辑:由于Date()是一个字符串类型,因此应该在不创建对象的情况下调用它们的方法.因为字符串类型的行为就像它们是对象一样.那为什么不呢?

编辑2:我认为这是唯一的核心功能,不能new Date()像其他功能(Array(), String(), Error()等)一样.所以,它也是这种语言或ECMAScript错误的隐藏功能.

javascript constructor date

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

linux中的按位OR打开标志

在linux open系统调用中,flags中按位OR的含义是什么.这是如何由编译器解释的.这是一个例子:

fd = open("myfile", O_RDONLY | O_CREAT | O_TRUNC, S_IRUSR);
Run Code Online (Sandbox Code Playgroud)

另外,逗号运算符在标志中做了什么?

更新:如果我们做&&运营商,使用其他运营商会产生什么影响

c linux

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

在for循环中使用关系运算符测试指针

假设我有一个for循环,它使用如下指针在数组中存储零:

int *vp, values[5];

for(vp = &values[5-1]; vp >= &values[0]; vp--)
   *vp = 0;
Run Code Online (Sandbox Code Playgroud)

书中的指针表示这个循环存在问题,因为比较vp >= &values[0]未定义,因为它超出了数组的范围.但是怎么样?

c arrays pointers

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

C中的构造函数和析构函数

我正在读一本书OOC A.T. Schreiner,我在这段代码中停留在以下行:

struct Class {
    size_t size;
    void *(* ctor) (void *self, va_list *app);
};

struct String {
    const void *class;  // must be first
    char *text;
};


void *new(const void *_class, ...) {
    const struct Class *class = _class;     // assign the address of `struct String` class
    void *p = calloc(1, class->size);       // allocate the sizeof(struct String);

    assert(p);
    *(const struct Class **)p = class;      // Force the conversion of p and set the argument `class` as the …
Run Code Online (Sandbox Code Playgroud)

c pointers function-pointers

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

了解一个月提醒程序中的strcmp()函数

这是打印一个月提醒列表的程序.这是KN King书中的一个例子.我的问题是我无法理解strcmp函数在这个程序中是如何工作的.

#include <stdio.h>
#include <string.h>

#define MAX_REMIND 50       /* Maximum number of reminders */
#define MSG_LEN 60          /* max length of reminders message */

int read_line(char str[], int n);

int main(void) {
    char reminders[MAX_REMIND][MSG_LEN+3];
    char day_str[3], msg_str[MSG_LEN+1];
    int day, i, j, num_remind = 0;

    for(;;) {
        if(num_remind == MAX_REMIND) {
            printf("--No space left--\n");
            break;
        }

        printf("Enter day and reminder: ");
        scanf("%2d", &day);
        if(day == 0)
            break;
        sprintf(day_str, "%2d", day);
        read_line(msg_str, MSG_LEN);

        for(i = 0; i < num_remind; i++)
            if(strcmp(day_str, …
Run Code Online (Sandbox Code Playgroud)

c arrays

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

使用 jwt 保护 api 密钥,无需身份验证

有没有什么方法可以使用 jwt 或任何其他方法来保护 api 响应,但无需身份验证(登录页面),以便只有所有者站点才能访问 api。我在google上看到的所有方法和教程都是基于jwt的登录系统。

举个例子,如果我有像这样的rest api:

router.get('/api/posts', (req, res) => {
 var body = ... // get some via database
 res.json(body);
})
Run Code Online (Sandbox Code Playgroud)

然后我只想通过我的网站使用它:example.com。最重要的是无需身份验证(登录系统)

javascript node.js express jwt

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

如何将数组数组转换为深嵌套树视图

我正在通过将路径数组转换为树视图数据结构来构建树视图.这就是我想要做的事情:

// routes are sorted.
let routes = [
    ['top', '1.jpg'],
    ['top', '2.jpg'],
    ['top', 'unsplash', 'photo.jpg'],
    ['top', 'unsplash', 'photo2.jpg'],
    ['top', 'foo', '2.jpg'],
    ['top', 'foo', 'bar', '1.jpg'],
    ['top', 'foo', 'bar', '2.jpg']
];

into 

let treeview = {
  name: 'top', child: [
    {name: '1.jpg', child: []},
    {name: '2.jpg', child: []},
    {name: 'unsplash', child: [
        {name: 'photo.jpg', child: []},
        {name: 'photo2.jpg', child: []}
    ]},
    {name: 'foo', child: [
        {name: '2.jpg', child: []},
        {name: 'bar', child: [
            {name: '1.jpg', child: []},
            {name: '2.jpg', child: …
Run Code Online (Sandbox Code Playgroud)

javascript algorithm tree grouping

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

函数赋值给C中的变量

当变量声明为全局时,为什么以下代码返回错误.

int add(int x, int y) {
    return x+y;
}


int ab = add(10, 20);
int main(void) {

    printf("%d", ab);
}
Run Code Online (Sandbox Code Playgroud)

但如果我这样称呼:

int add(int x, int y) {
    return x+y;
}


int main(void) {
    int ab = add(10, 20);  // Variable declare inside main
    printf("%d", ab);
}
Run Code Online (Sandbox Code Playgroud)

然后它执行没有错误.

c function

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

如何沿多边形移动对象

假设(比如说三角形),我想将一个物体从A移动到B然后B移动到C然后C移动到A.我怎么能这样做?

我google了很多,但找不到在多边形周围移动物体(比如球)的例子.我知道,我可以用贝塞尔曲线完成它,但对于一个简单的三角形或矩形,如果没有它,我该怎么办?请用任何语言提供一些伪代码或代码.(更喜欢JavaScript/Processing).

javascript language-agnostic processing html5-canvas

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