gpt4 book ai didi

c - c中的json相似对象

转载 作者:太空宇宙 更新时间:2023-11-04 06:16:46 25 4
gpt4 key购买 nike

我有 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 中做到这一点

最佳答案

您使用结构。但是,与其他两种语言相比,C 是完全不同的野兽。首先,它是静态类型的:所有变量和函数的类型必须在编译时知道,完全。这也意味着您不能像在 JS 中那样继续使用“对象”并用任意多个字段填充它:

var person = {};
person.name = "Donald Duck";
person.age = 82; // I'm sure that Donald is always depicted younger
person.localtion = "Duckburg"; // woo hoo

稍后,您可能会决定一个(或者更确切地说是鸭子)也应该有一个尺寸:

person.size = 9001;

这在 C 中是不可能的,在 C 中,当您定义结构时,您将自己限制在结构中的字段,并且那些字段:

struct person {
const char * name;
int age;
const char * location;
};

然后您可以开始创建您的真实人物:

struct person donald;

donald.name = "Donald Duck";
donald.age = 82;
donald.location = "Uncle Scrooge's Money Bin";

但是,如果您现在尝试添加 donald.size,您将会被编译器斥责。

话虽这么说,C 在如此许多层面上的工作方式如此不同,这将是一次疯狂的旅程。例如,您不能继续使用 "Donald"+ "Duck""Donald " 。 “鸭子”`。没有字符串连接运算符。你必须手工做事,自己管理内存,并记住很多事情。

根据您希望如何使用该语言,您可能希望从 C++ 开始,然后深入研究 C 仍然挥之不去的腹部。因为 C 没有对象。 C++ 可以。但请记住,虽然大多数 C 程序都可以用 C++ 编译,但它们在某种程度上是不同的语言。

关于c - c中的json相似对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43830276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com