我有javascript和php的背景但是我现在正在尝试学习C但是我已经遇到了一些障碍,在这两种语言中都有对象
$obj = new stdClass(); || const obj = {};
然而,我在C中找不到类似的东西,是不是没有这样的东西,或者我只是在找错了地方?
或者是否有更好的方法在C中做这样的事情?
好的我觉得我得到了Cody Gray的答案,但只是为了清楚一点:
我Javascript你可以做类似的事情:
const person = {
name: "Donald Duck",
age: 82,
location: "Duckburg",
};
console.log(person.name, person.age, person.location);
在php中你会做类似的事情
$person = new stdClass();
$person->name = "Donald Duck";
$person->age = 82;
$person->location ="Duckburg";
echo $person->name . " " . $person->age . " " . $person->location
我的问题是你是否/如何在C
中做到这一点答案 0 :(得分:1)
C没有“对象”,因为它是过程编程语言,而不是面向对象的语言。
但是,它 可以通过结构(struct
关键字)对相关数据进行分组。这是您可能更一般地了解的用户定义类型。它与其他语言中的“类”或“对象”并不完全相同,因为它没有任何相关的成员函数(至少,没有一个疯狂欺骗的 lot )它确实是语言的一部分,当然不是惯用的,但它仍然非常方便。
语法如下:
struct Person
{
char name[100];
int age;
char location[100];
};
然后,在您的代码中,您只需:
struct Person donaldDuck = { "Donald Duck", 82, "Duckburg" };
printf("Name: %s\nAge: %d\nLocation: %s\n",
donaldDuck.name,
donaldDuck.age,
donaldDuck.location);
请注意,使用.
运算符访问结构的字段,就像许多其他语言一样。
答案 1 :(得分:0)
网上有大量的C库。 例如,看一看 https://github.com/DaveGamble/cJSON/blob/master/README.md