编程C,C ++,Java,PHP,Ruby,图灵,VB
计算机科学加拿大 
编程C,C ++,Java,PHP,Ruby,图灵,VB  

用户名:   Password: 
 登记登记   

 Wiki.Wiki.   博客博客   搜索搜索   图灵图灵   聊天室  成员成员 
 结构+指针+功能+文件+教程请!
指数 -> 编程,C. -> C帮助
查看上一个主题 可打印的版本下载主题订阅本主题私人信息刷新页面 查看下一个主题
作者 信息
srlancelot39.




邮政发布: 2014年7月14日星期一8:59  帖子主题:结构+指针+功能+文件+教程请!

我发现自己在一个情况下,我必须在3个不同文件中读取和从函数读取和写入结构的情况。我知道(有点)如何自己做这些事情,但将所有这些东西组合在一起并不是很好的哈哈。如果有人可以给我一个微型讲座,甚至在C教程部分中发布教程,我会非常感激。

谢谢!
赞助
赞助
赞助
赞助
虫子




邮政发布: 2014年7月14日星期一10:09 AM  帖子主题:Re:结构+指针+功能+文件+教程请!

结构只是有组织的变量组。除了您必须访问结构中的单个变量之外,您读取并写入它们的其他内容。

代码:

结构{
    a : int
    b : int
}C;

FPRINGF.(c.a);
FPRINGF.(c.b);


当您解密指针(使用*字符)时,它只是任何其他的变量。
代码:

㈡ * a;
* a = 1;
FPRINGF.(*a);


函数(除void void void)返回一个值,该值可以像变量一样对待。
代码:

㈡() : int {
    return 1
}
FPRINGF.(a());


所有这些都只是工具。任何人都可以一次使用这些工具,但这并没有任何有用的东西。编程是以有用的方式将这些工具组合在一起,这是学习如何做的最重要的事情。
srlancelot39.




邮政发布: 2014年7月14日星期一10:47  帖子主题:Re:结构+指针+功能+文件+教程请!

我理解如何完成所有这些,我的问题是将它们传递给/从不同文件中的函数。
虫子




邮政发布: 2014年7月14日星期一12:50  帖子主题:Re:结构+指针+功能+文件+教程请!

你的意思是单独的源文件?你明白如何使用#include?
可怕的




邮政发布: 2014年7月14日星期一:下午1:10  帖子主题:Re:结构+指针+功能+文件+教程请!

如果在头文件中定义结构,则应使用许多文件中的结构毫无问题。

这是一个例子(虽然对于像数字的东西,我通常不会使用指针)

复杂
C:
#ifdef __complex_h__
#define __complex_h__

塑造 复杂的 {
    漂浮 re;
    漂浮 im;
};

空白共轭 (复杂* C.);

#endif // __ complex_h__


复杂的
C:
#包括"complex.h"

空白共轭 (复杂* C.) {
    c->im = -c->im;
}


主要的.c
C:
#包括"complex.h"

复杂* makecomplex.(漂浮 r, 漂浮 i) {
    Complex* c = (复杂的*)Malloc.(尺寸(复杂的));
    c->re = r;
    c->im = i;
    返回 c;
}

空白 main() {
   复杂* c = makecomplex(3,4);
    // C -> 3 + 4i

    Conjugate(c);
    // C -> 3 - 4i

    free(c);
}


不幸的是,我没有我的C编译器离开了家,所以我不能保证这会像这样运行(可能是一些半冒号我错过或其他东西)。
srlancelot39.




邮政发布: 2014年7月14日星期一6:35 PM  帖子主题:Re:Re:结构+指针+功能+文件+教程请!

昆虫@ 2014年7月14日星期二:下午12:50写道:
你的意思是单独的源文件?你明白如何使用#include?

我正在使用单独的源文件和标题,是的,我这样做 非难

要详细介绍:
我的问题是我被要求在本地声明一个结构和某些变量,并将它们从项目范围内使用。
IE。
C:

main()
{
塑造 bridge truss[arraysize.]; //这需要由另一个.c文件访问。
this_must_be_local; //这需要访问另一个.c文件
//更多代码
}


可怕的 @ 2014年7月14日星期三下午1:10写道:
如果在头文件中定义结构,则应使用许多文件中的结构毫无问题。


但是,我的结构在标题文件中定义,但是,它的特定实例(即struct bridge truss [size])是(并且必须)以主要声明。我还有一些必须在另一个.c文件访问的本地变量。我被告知有办法做到这一点,我只是不确定这样做的具体细节。
虫子




邮政发布: 2014年7月14日星期一晚上8:00  帖子主题:Re:结构+指针+功能+文件+教程请!

如果您在主要的主要文件中有变量,则应在标题(例如,Main.h)中声明它们。然后,您可以在您需要的任何地方(有适当的内容,当然是守卫)。

如果它在main()函数中声明,则据我所知,外部文件将无法访问它。
可怕的




邮政发布: 2014年7月14日星期一:下午9:08  帖子主题:Re:结构+指针+功能+文件+教程请!

Incemot写道:

如果您在主要的主要文件中有变量,则应在标题(例如,Main.h)中声明它们。然后,您可以在您需要的任何地方(有适当的内容,当然是守卫)。

如果它在main()函数中声明,则据我所知,外部文件将无法访问它。


只是为了澄清,声明变量和定义变量之间存在差异(或者至少是维基百科所说的)。
当您定义变量时,编译器会为其设置存储器,依此类推。
声明变量时,编译器不分配内存,但要求在其他地方定义变量。

因此,事实上,这里我们想在头文件中声明(external)变量(否则每个文件将定义其自己的变量)。

在C中,这是使用外部关键字完成的。

例如:

标题
C:

// ifdef的东西

外部 externalInteger;

//万一 


主要的.c
C:

#包括"header.c"

externalInteger;

主要的 (空白) {
  externalInteger = 42;
}


您可以在包含“header.h”的任何其他文件中使用“ExternalInteger”来做任何您喜欢的任何您喜欢的内容
赞助
赞助
赞助
赞助
srlancelot39.




邮政发布: 星期二2014年7月15日上午8:09  帖子主题:Re:结构+指针+功能+文件+教程请!

好的谢谢。我想我试过了 外部,但我可能是错误的,或者有一些阻止我的程序工作的其他错误。我会再试一次。我的思绪与虫蚀剂相同;申报它似乎是不可能的,不切实际的 主要的().

编辑:啊,我记得我所拥有的问题 外部 现在......它必须是一个局部变量,因此我不能在外面申报它 主要的()。宣布它 主要的() 并拥有 外部 在我的标题文件中导致错误,因为它找不到变量。

编辑2:我修好了它!我在错误的地方做了一些可变作业,这使得这是不可能做到的事情。我还需要添加两个新的结构变量;一个暂时按住记录(而不是使用单个临时变量)并将其返回 主要的() 在另一个源文件中,另一个返回此返回的结构并将其分配给数据库中的位置。
从上一个显示帖子:   
   指数 -> 编程,C. -> C帮助
查看上一个主题 告诉一个朋友可打印的版本下载主题订阅本主题私人信息刷新页面 查看下一个主题

11  [ 9 Posts ]
跳到:   


Style:  
搜索: