相关疑难解决方法(0)

将参数名称放在C函数原型中?

在C中声明函数时,应该设置一个原型,在该原型中不需要编写参数名称.只是它的类型就足够了.

     void foo(int, char);
Run Code Online (Sandbox Code Playgroud)

我的问题是,还包括参数名称是一个好习惯吗?

c function-prototypes

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

纯C函数调用Objective-C方法?

好的,我已经阅读了关于这个主题的六个主题,但没有一个解决方案似乎能解决确切的需求.

题:

Pure C(.c)函数如何在Pure Objective-C(.m)类中调用方法?

每个示例/答案都是在Objective-C(.m)方法中使用C. 我有一个Pure C库,我必须创建一个模拟器,所以我需要将我的内核保持在纯C中并调用Objective-C中的更高级别的仿真方法.

我创建引用和调用方法的任何尝试都失败了.方括号表示法也失败了.在Obj-C中创建全局变量并尝试在Pure-C中使用它不起作用,就好像命名空间是隔离的一样.

有人做过吗?

这是一个流程图:

Obj-C UIButton CLICKED->调用Obj-C方法 - >调用C函数 - >调用Obj-C方法

c methods function objective-c

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

警告:C99中隐式声明功能无效?

这是一个头文件

#include <stdio.h>

int m = 18;
int x = 4;

int singles (n) {
    if (n == 1)
         return 0;
    return doubles(n-1);
} 

int doubles (n) {
    if (n == 1)
        return 0;

    return triples(n-1);
}

int triples (n) {
    if (n == 1)
        return m;

    return (singles(n-1) + doubles (n-1) + triples (n-1))*(m-1);
}
Run Code Online (Sandbox Code Playgroud)

这是主文件

#include <stdio.h>
#include "test.h"

int main () {
    printf("%d",singles (x));
}
Run Code Online (Sandbox Code Playgroud)

所以至少对我来说这是非常复杂的.这个想法是在主函数中我将调用单个(x),其中x = 4,因此它更像单个(4),它将调用双精度(3),它将调用三倍(2),它将调用所有将返回0的单个(1),返回0的双倍(1)和将返回m的三倍(1).

所以我得到的错误是

./test.h:13:12: warning: implicit declaration of function 'doubles' is …
Run Code Online (Sandbox Code Playgroud)

c

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

警告:函数'foo'的隐式声明在C99中无效

我在C编程中遇到了另一个问题.我按照"C语言编程"一书中的一个例子编写了以下两个源文件:

main.c中:

#include <stdio.h>
#include <stdlib.h>

int i = 5;

int main(void)
{
  printf("%i ", i);

  foo();

  printf("%i\n", i);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

foo.c:

extern int i;

void foo(void)
{
  i = 100;
}
Run Code Online (Sandbox Code Playgroud)

编译'gcc main.c foo.c'时出现问题:

main.c:9:3:警告:函数'foo'的隐式声明在C99中无效[-Wimplicit-function-declaration] foo(); 生成^ 1警告.

我通过将foo.c重命名为foo.h并将其作为标题包含在main.c中找到了解决方法.这是一种使其有效的好方法吗?如何使它与foo.c一起使用?

c

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

函数“池”的隐式声明在 C99 中无效

该程序的目标是将大量整数存储在一个数组中,如下所示。它使用“池”函数来收集索引为 2 的整数,并将“池”返回给主函数。我尝试在 Xcode 11 中编译代码,但是在 main 中调用“pool”函数期间出现了这个错误“函数‘池’的隐式声明在 C99 中无效”。我该如何解决?如何将 Xcode 上的编译器更改为 C11 标准?

#include <stdio.h>
#include <stdlib.h>
#define SIZE 1000000000

int group[SIZE];

int main()
{
    pool();
    return 0;
}

int pool()
{
    for (int index = 2; index < SIZE; index++)
    {
        group[index] = 1;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c xcode c99 c11

0
推荐指数
1
解决办法
3920
查看次数

标签 统计

c ×5

c11 ×1

c99 ×1

function ×1

function-prototypes ×1

methods ×1

objective-c ×1

xcode ×1