相关疑难解决方法(0)

函数声明与原型的替代(K&R)C语法

这个C语法有什么用- 使用'K&R'样式函数声明?

int func (p, p2)
    void* p;
    int  p2;
{
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我能够在Visual Studios 2010beta中写这个

// yes, the arguments are flipped
void f()
{
    void* v = 0;
    func(5, v);
}
Run Code Online (Sandbox Code Playgroud)

我不明白.这种语法有什么意义?我可以写:

int func (p, p2)
    int  p2;
{
    return 0;
}
// and write
int func (p, p2)
{
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它似乎唯一指定的是它使用了多少参数和返回类型.我猜没有类型的参数有点酷,但为什么允许它和int paranName函数声明后?有点奇怪.

这还是标准的C吗?

c function kernighan-and-ritchie function-declaration function-definition

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

如何在C++中将UTC日期和时间转换为time_t?

我想将年,月,日等数字中给出的UTC日期和时间转换为time_t.有些系统提供类似mkgmtimetimegm用于此目的的功能,但这不是标准的,在我的Solaris系统上不存在.

到目前为止我找到的唯一解决方案是使用setenv将本地时区设置为UTC,然后调用mktime.但是,这种方法不是线程安全的,慢的,不可移植的,甚至会在我的系统上产生内存泄漏.

我也看到了尝试使用gmtime然后将其添加到结果的方法来确定当前UTC偏移的方法mktime.但据我所知,所有这些方法都有差距.毕竟,从本地时间到UTC的转换并不是唯一的.

您认为什么是最佳解决方案?

c++ time-t

7
推荐指数
2
解决办法
6231
查看次数

结构体在函数名/参数之后、括号之前声明。有人能解释一下这个C语法吗?

这是代码:

A_output(message) 
 struct msg message;
{

}
Run Code Online (Sandbox Code Playgroud)

我以前从未见过这样的语法。该结构定义在做什么?这只是在参数字段中指定“消息”的“类型”的另一种方式吗?那么,它是一样的吗?:

A_output(struct msg message) 
{

}
Run Code Online (Sandbox Code Playgroud)

c struct function function-definition

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

这个奇怪的C++定义是什么意思?

我的作业代码中有这个奇怪的函数定义,我真的不知道它应该是什么意思.

char *
sh_single_quote (string)
char *string;
{...}
Run Code Online (Sandbox Code Playgroud)

特别是"char*string;" 一行,最后用分号.

c kr-c function definition

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

定义中函数标题后的C变量声明

在阅读一些FreeBSD源代码时(参见:radix.h第158-173行),我在定义中找到了"函数标题"之后的变量声明.

这在ISO C(C99)中有效吗?什么时候应该在生产代码中完成而不是仅仅在"函数标题"中声明变量?为什么要在这里完成?

我指的是标题字符串的函数,如下所示: int someFunction(int i, int b) {

c variables freebsd c99 c89

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

仅提取函数名称及其来自C代码的注释

我想提取注释,并想知道它们是哪些函数.我有很多这样的C文件如下:

输入:

void main()
{
    //sdgs
    call A;
    /*
    sdfgs
    dfhdfh
    */
    call b;
    some code;
}

/* this function adds
 something */
int add()
{
    //sgsd
    some code;
    //more comments
    some code;
}
Run Code Online (Sandbox Code Playgroud)

输出应该是:

void main()
{
    //sdgs

    /*
    sdfgs
    dfhdfh
    */

}

/* this function adds
 something */
int add()
{
    //sgsd

    //more comments

}
Run Code Online (Sandbox Code Playgroud)

输入代码格式整齐,"功能代码" {在下一行后开始.基本上,我只需要知道哪个"评论"来自哪个函数.此外,它还应包括功能名称或其他地方的任何其他注释.注意:这是不同的,因为顶层的函数名称应该在那里.

为了简化我的要求:

  1. 打印所有评论
  2. 检测包含(在第一行上的块,其中一行仅包含{一到三行后的第一列,并打印上面的行.

c perl awk comments sed

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

C - 将大写字母转换为小写

一个非常简单的程序.我只是想把'A'变成'a',但输出给我'A'.

#include <stdio.h>

int main(void) {
    putchar(lower('A')); 

}

lower(a) 
int a; 
{
    if ((a >= 65) && (a >= 90))
        a = a + 32; 
    return a;  
}
Run Code Online (Sandbox Code Playgroud)

c

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