小编Jac*_*ack的帖子

如何仅在makefile的终端上打印输出而不在终端上打印命令行?

我想在我的makefile文件中写入简单的“帮助”选项,但是问题出在这里;

all: 
   echo "help options.." 
Run Code Online (Sandbox Code Playgroud)

当我make在终端上打电话时,它打印:

echo "help options.."
help options..
Run Code Online (Sandbox Code Playgroud)

只能打印吗?:

help options..
Run Code Online (Sandbox Code Playgroud)

希望对您来说很清楚。

linux makefile

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

ISO C90禁止可变长度阵列

我正在动态计算数组的大小.就像是:

void foo(size_t limit)
{
  char buffer[limit * 14 + 1];
}
Run Code Online (Sandbox Code Playgroud)

但只是GCC编译器说:

error: ISO C90 forbids variable length array ‘buffer’
Run Code Online (Sandbox Code Playgroud)

搜索SO我发现这个答案:

C99§6.7.5.2:

如果size是一个不是整数常量表达式的表达式......每次计算它时,它的值应大于零.

所以,我做了大小限制类型变量的重新声明:

void foo(const size_t limit)
Run Code Online (Sandbox Code Playgroud)

但它继续给我警告.这是GCC的错误吗?

c variable-length-array

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

如何以编程方式将图像添加到资源中?

我在我使用Visual Studio添加的资源[.resx文件]中有一些图像文件.但是,现在我需要以编程方式将图像添加到资源中.

我怎么这样?

c# resources

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

读取UTF8文件,出现问题

我正在阅读一个UTF-8编码的文本文件.某些文件行包含重音符号.像这样:EdiçÃo.但是在Console和LINQPad输出Edi??o而不是.

这是我如何阅读文件:

File.ReadAllLines("foo.txt", Encoding.UTF8);
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

c# file-io utf-8

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

如何在函数或宏函数中创建一个必须只定义一次的变量?

CURRENT_DIR在我的程序中多次打电话(见下文).就像程序运行时不可更改的可执行路径一样,每次调用此函数时都无需再次定义它.

所以,我正在寻找一个解决方案,一旦这个值设置,它就不应该再次设置.

我当前的解决方案是:创建一个静态变量,将所有值设置为0,并在if语句测试中检查第一个字符是否为非null,如果为true,则设置它.但它看起来像一个不优雅的..也许有一个更好的解决方案..通过使用包括宏的一些模型,我不知道.

看代码:

#define CURRENT_DIR ({                                          \
  static char buffer[MAX_PATH + 1] = { 0 };         \
      if(buffer[0] != '\0')                     \
    getcurrentdir(buffer, MAX_PATH);            \
      buffer;                           \
})
Run Code Online (Sandbox Code Playgroud)

c optimization gcc static-variables

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

实现perror() - 问题

我正在实现perror()相当于我正在使用的API.

perror()ISO C标准doc说:

perror()函数不得更改标准错误流的方向.

但以编程方式,它意味着什么?

我现在正在使用fprintf(stderr, .. ).用它是个错误吗?如果是真的,为什么?如果我的实施中有一些错误(见下文),请给我点.

根据我的解释查看我的C代码:

void
fooapi_perror(const char *s)
{
  char *emsg;

  if(s != NULL && *s != '\0')
    fprintf(stderr, "%s: ", s);

  emsg = fooapi_strerror(GetLastErrorCode()); 
  fprintf(stderr, "%s\n",  emsg); 
  free(emsg);
}
Run Code Online (Sandbox Code Playgroud)

c posix

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

strn*()与str*()相比有多快?

可能重复:
为什么要使用strncpy而不是strcpy?

我正在读一本关于计算机/加密等的书.通常作者使用的东西,strncpy(dest, src, strlen(src));而不是strcpy(dest, src);它对我来说没什么意义..好吧,我是一个专业的程序员.

问题是:它真的有一个真正的区别吗?真正的应用使用这样的东西?

c optimization performance

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

从jpeg图像文件获取宽度和高度

我把这个函数写成给定的文件名(一个jpeg文件)应该以像素为单位打印它的大小,w和h.根据我正在阅读的教程,

// 0xFFC0是"帧起始"标记,包含文件大小// 0xFFC0块的结构非常简单[0xFFC0] [ushort length] [uchar precision] [ushort x] [ushort y]

所以,我写了这个 struct

#pragma pack(1)
struct imagesize {
  unsigned short len; /* 2-bytes */
  unsigned char c;    /* 1-byte */
  unsigned short x;   /* 2-bytes */
  unsigned short y;   /* 2-bytes */
}; //sizeof(struct imagesize) == 7
#pragma pack()
Run Code Online (Sandbox Code Playgroud)

然后:

#define SOF 0xC0 /* start of frame */

    void jpeg_test(const char *filename)
    {
      FILE *fh;
      unsigned char buf[4];
      unsigned char b;

      fh = fopen(filename, "rb");
      if(fh == NULL) 
        fprintf(stderr, …
Run Code Online (Sandbox Code Playgroud)

c height jpeg width

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

如何在clang中禁用有关匿名结构的警告?

我希望在没有此警告的情况下在我的C++程序中使用匿名结构,但保留-pedantic标记,因为我想知道我是否正在使用来自Microsoft/GCC的任何其他编译器扩展.我知道, -Wno-gnu但它关闭的比我想要的更多,每个gcc的扩展都支持.可能吗?

c++ clang compiler-warnings

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

如何比较忽略大小写的字符串?

我需要string在D忽略的情况下比较两个s(而不是仅ASCII).明显的解决方案是:

s1.toUpper() == s2.toUpper()

但是我想避免字符串重复或者自己写一个支持可能最快的原生代(如果有的话).

string d string-comparison

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