小编Dev*_*lar的帖子

在bash中将数组作为参数传递

如何将数组作为参数传递给bash函数?

注意:在Stack Overflow上没有找到答案后,我自己发布了一些粗略的解决方案.它只允许传递一个数组,它是参数列表的最后一个元素.实际上,它根本没有传递数组,而是传递了它的元素列表,这些元素通过called_function()重新组合成一个数组,但它对我有用.如果有人知道更好的方式,请随时在此处添加.

arrays bash

181
推荐指数
6
解决办法
16万
查看次数

Cygwin:如何实际使用gcc-mingw

由于"gcc -mno-cygwin"不再起作用,我一直在寻找一种方法来在我的Cygwin环境中运行一个以MinGW为目标的GCC.(此时不能运行MSYS环境.)

Cygwin安装程序提供了一个"gcc-mingw"软件包,其中包括:

lib/gcc/i686-pc-mingw32/3.4.4/cc1.exe
lib/gcc/i686-pc-mingw32/3.4.4/collect2.exe
lib/gcc/i686-pc-mingw32/3.4.4/crtbegin.o
lib/gcc/i686-pc-mingw32/3.4.4/crtend.o
Run Code Online (Sandbox Code Playgroud)

缺少的是"gcc"前端.那么,我该如何实际调用这个编译器呢?我希望不必手动通过"cc1",对吗?

我用Google搜索,但找不到与此主题相关的任何内容......

gcc cygwin mingw

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

Autoconf:dnl vs.#

Autoconfig手册指出注释行可以以dnl或开头#.

他们之间有什么区别,在任何情况下使用一个而不是另一个的理由是什么?或者纯粹是品味问题?

autoconf

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

CppCon 2018,Nicolai Josuttis:为什么这些被解释为迭代器?

Nicolai Josuttis在CppCon 2018上的"C++初始化的梦魇"演讲中,曾经有过以下代码:

std::vector< std::string > v07 = {{ "1", "2" }};
Run Code Online (Sandbox Code Playgroud)

Nicolai 说以下(转录矿):

问题是,这里发生的是,我们将这两个参数解释为迭代器.所以这些是迭代器,所以是范围的开始,是范围的结束,它们应该引用相同的字符范围; 因为字符隐式转换为字符串,这将编译.如果你很幸运,你会得到一个coredump.如果没有,你就有了一个大问题.

他在那里失去了我.有人可以一步一步地解释这里发生了什么吗?

c++ initialization c++17

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

如何在C中读取/解析输入?常见问题

当我尝试读取/解析输入时,我的C程序出现问题.

救命?


这是一个FAQ条目.

StackOverflow有许多与C中读取输入相关的问题,答案通常集中在特定用户的特定问题上,而不是真正描绘整个画面.

这是一次全面覆盖一些常见错误的尝试,因此只需将这些错误标记为重复,就可以回答这一特定问题:

  • 为什么最后一行打印两次?
  • 为什么我scanf("%d", ...)/ scanf("%c", ...)失败?
  • 为什么会gets()崩溃?
  • ...

答案被标记为社区维基.随意改进和(谨慎)扩展.

c stdio

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

Perl:使用<>构造时如何获取文件名?

Perl提供了这个非常好的功能:

while ( <> )
{
    # do something
}
Run Code Online (Sandbox Code Playgroud)

...允许脚本script.pl <filename>和...一样使用cat <filename> | script.pl.

现在,有没有办法确定脚本是否以前一种方式被调用,如果是,文件名是什么?

我知道我知道这一次,我知道我甚至使用了这个结构,但我不记得在哪里/如何.事实证明很难搜索'net for this("perl stdin filename"?不......).

请帮忙?

perl

18
推荐指数
3
解决办法
7281
查看次数

如何在流上禁用缓冲?

在C中,我可以轻松地将流设置为无缓冲的I/O:

FILE * f = fopen( "test", "r" );
setvbuf( f, (char *)NULL, _IONBF, 0 );
Run Code Online (Sandbox Code Playgroud)

如何使用C++ IOStream实现类似的无缓冲I/O?

c++ buffer iostream

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

在成员初始值设定项列表中,我可以创建对不在列表中的成员变量的引用吗?

考虑:

#include <string>
#include <iostream>

class Foo
{
     public:
         Foo( char const * msg ) : x( y ) 
         {
             y = msg;
         }

         std::string const & x;

     private:
         std::string y;
};

int main( int argc, char * argv[] )
{
    if ( argc >= 2 )
    {
        Foo f( argv[1] );
        std::cout << f.x << std::endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

这编译并打印出第一个参数......但我怀疑它是否实际上是"合法的"/格式良好的.我知道初始化列表应该按照它们在类中声明的顺序初始化变量,以免引用尚未初始化的变量.但是不在初始化列表中的成员变量呢?我可以安全地创建对它们的引用吗?

(当然,这个例子毫无意义.只是为了澄清我在谈论的内容.)

c++ initialization

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

strcmp()和signed/unsigned字符

我对strcmp()感到困惑,或者更确切地说,它是如何由标准定义的.考虑比较两个字符串,其中一个字符串包含ASCII-7范围之外的字符(0-127).

C标准定义:

int strcmp(const char*s1,const char*s2);

strcmp函数将s1指向的字符串与s2指向的字符串进行比较.

strcmp函数返回一个大于,等于或小于零的整数,因为s1指向的字符串大于,等于或小于s2指向的字符串.

参数是char *.没有unsigned char *.没有任何概念"比较应该作为unsigned".

但是,所有我检查认为"高"字标准库是公正的,更高的值比ASCII-7字符.

我理解这是有用的和预期的行为.我不想说现有的实现是错误的.我只是想知道,我错过了标准规格中的哪一部分

int strcmp_default( const char * s1, const char * s2 )
{
    while ( ( *s1 ) && ( *s1 == *s2 ) )
    {
        ++s1;
        ++s2;
    }
    return ( *s1 - *s2 );
}

int strcmp_unsigned( const char * s1, const char *s2 )
{
    unsigned char * p1 = (unsigned char *)s1;
    unsigned char …
Run Code Online (Sandbox Code Playgroud)

c standards

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

如何使用Charles Proxy通过https启用Map Local?

我正在使用Charles Proxy的方便的Map Local工具来开发CSS文档.通过这种方式,我可以立即看到我的编辑,而无需重新部署整个企业级webapps的精彩世界可以节省大量时间.

我刚刚发现Map Local不支持https协议.我对http没有任何问题,一切都按预期工作.

我使用的是Windows 7,每个浏览器都存在问题.

什么可能是错误的配置?

mapping https configuration proxy charles-proxy

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