小编Rod*_*edo的帖子

int argc,char*argv []是什么意思?

在许多C++ IDE和编译器中,当它为您生成主函数时,它看起来像这样:

int main(int argc, char *argv[])
Run Code Online (Sandbox Code Playgroud)

当我在没有IDE的情况下编写C++代码时,只需使用命令行编译器,我输入:

int main()
Run Code Online (Sandbox Code Playgroud)

没有任何参数.这意味着什么,对我的计划至关重要?

c++ parameters argv command-line-arguments argc

476
推荐指数
8
解决办法
81万
查看次数

printf的格式很长的论点是什么?

printf函数采用参数类型,例如%d%i用于signed int.但是,我没有看到任何long价值.

c printf long-integer

461
推荐指数
6
解决办法
72万
查看次数

如何在C中将字符串转换为整数?

我试图找出是否有一种在C中将字符串转换为整数的替代方法.

我经常在我的代码中模式化以下内容.

char s[] = "45";

int num = atoi(s);
Run Code Online (Sandbox Code Playgroud)

那么,有更好的方式或其他方式吗?

c string atoi

238
推荐指数
6
解决办法
92万
查看次数

NumPy数组不是JSON可序列化的

创建NumPy数组并将其保存为Django上下文变量后,加载网页时收到以下错误:

array([   0,  239,  479,  717,  952, 1192, 1432, 1667], dtype=int64) is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

python django json numpy

196
推荐指数
7
解决办法
18万
查看次数

在C中按值传递结构是否有任何缺点,而不是传递指针?

在C中按值传递结构是否有任何缺点,而不是传递指针?

如果结构很大,显然存在复制大量数据的性能方面,但对于较小的结构,它应该基本上与将多个值传递给函数相同.

当用作返回值时,它可能更有趣.C只有函数的单个返回值,但是你经常需要几个.所以一个简单的解决方案是将它们放在一个结构中并返回它.

是否有任何理由支持或反对这一点?

因为对于每个人来说,我在这里谈论的内容可能并不明显,所以我举一个简单的例子.

如果您使用C编程,您迟早会开始编写如下所示的函数:

void examine_data(const char *ptr, size_t len)
{
    ...
}

char *p = ...;
size_t l = ...;
examine_data(p, l);
Run Code Online (Sandbox Code Playgroud)

这不是问题.唯一的问题是你必须同意你的同事的参数顺序,所以你在所有功能中使用相同的约定.

但是当你想要返回相同类型的信息时会发生什么?你通常得到这样的东西:

char *get_data(size_t *len);
{
    ...
    *len = ...datalen...;
    return ...data...;
}
size_t len;
char *p = get_data(&len);
Run Code Online (Sandbox Code Playgroud)

这很好,但问题更多.返回值是返回值,但在此实现中它不是.从上面没有办法说明函数get_data不允许查看len指向的内容.并且没有任何东西可以使编译器检查实际通过该指针返回的值.那么下个月,当其他人修改代码时却没有正确理解它(因为他没有阅读文档?)它会在没有人注意的情况下破坏,或者随机开始崩溃.

所以,我提出的解决方案是简单的结构

struct blob { char *ptr; size_t len; }
Run Code Online (Sandbox Code Playgroud)

这些例子可以像这样重写:

void examine_data(const struct blob data)
{
    ... use data.tr and data.len ...
}

struct blob = { .ptr = ..., .len = ... };
examine_data(blob); …
Run Code Online (Sandbox Code Playgroud)

c struct parameter-passing abi

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

使用gcc命令行从.c文件构建.so文件

我正在尝试为Linux动态库(.so文件)创建一个hello world项目.所以我有一个文件hello.c:

#include <stdio.h>
void hello()
{
    printf("Hello world!\n");
}
Run Code Online (Sandbox Code Playgroud)

如何hello()使用命令行中的gcc 创建导出的.so文件?

c linux gcc shared-libraries

145
推荐指数
1
解决办法
14万
查看次数

关于'main(int argc,char*argv [])'

可能重复:
main()的参数是什么?
int argc,char*argv []是什么意思?

每个程序都从main(int argc, char *argv[])定义开始.

我不明白这意味着什么.如果我们在程序中不使用这些参数,有人可以解释为什么我们会使用这些参数,我会很高兴的吗?为什么不int main()呢:?

程序的名称是其中的一个元素,*argv[]并且argc是参数个数的计数*argv[]?发送到的其他参数是*argv[]什么?我们如何发送它们?

c argv argc

93
推荐指数
3
解决办法
48万
查看次数

如何清除Haskell中的终端屏幕?

用户从我的应用程序菜单中选择了一个选项后,如何清除终端屏幕?

terminal haskell ghci

86
推荐指数
7
解决办法
3万
查看次数

在C中打开字符串的最佳方法

在C中有一个switch构造,它使一个人能够根据一个测试整数值执行不同的条件代码分支,例如,

int a;
/* Read the value of "a" from some source, e.g. user input */
switch ( a ) {
case 100:
  // Code
  break;
case 200:
  // Code
  break;
default:
  // Code
  break;
}
Run Code Online (Sandbox Code Playgroud)

如何为字符串值获得相同的行为(即避免所谓的" if- else阶梯"),即char *

c switch-statement

74
推荐指数
8
解决办法
19万
查看次数

Haskell中2个列表的笛卡尔积

我希望在Haskell中生成2个列表的笛卡尔积,但我无法弄清楚如何做到这一点.笛卡尔积给出了列表元素的所有组合:

xs = [1,2,3]
ys = [4,5,6]

cartProd :: [a] -> [b] -> [(a,b)]
cartProd xs ys ==> [(1,4),(1,5),(1,6),(2,4),(2,5),(2,6),(3,4),(3,5),(3,6)]
Run Code Online (Sandbox Code Playgroud)

这不是一个实际的家庭作业问题,与任何此类问题无关,但解决这个问题的方式可能有助于我坚持下去.

haskell combinatorics cartesian-product

65
推荐指数
10
解决办法
3万
查看次数