C语言关于函数调用变量的问题

初学C语言,想写一个中国象棋的控制台小程序。写了大概的内容之后发现大部分函数其实都需要某些变数 / 结构,基本上每个函数都要输入那些变数,这样的话其实会不会把那些变数封装成一个结构类比较好 或者 直接变成全局变数?感觉上看着那些变数每次都在不同的函数里面重复有一些烦。不知道该在什么使用全局变量。

还有就是我有些函数是需要调用到别的函数,例如说a函数需要调用b函数,但是a函数本来是不需要用到number这个变量而b函数需要用到,所以我就要特意为了b函数去输入number这个变量给a函数。这种问题要怎么解决啊。

问题如下·:

img

可以看到我基本每个函数都需要用到红色棋子 黑子棋子 棋盘 side这些变量或者结构体,但是每次都要不停的输入进去,写着写着觉得有点麻烦了,这种问题该怎么解决啊

img

其次就是其实我本来putdown这个函数是不需要用到prpos pcpos这些函数的,但是为了调用chosschess这个函数又特意把这些变量输入去了,这种写法会令程序变得复杂嘛

该回答引用GPTᴼᴾᴱᴺᴬᴵ
对于你的第一个问题,将变量封装成一个结构体是一种不错的解决方案,可以提高代码的可读性和可维护性。你可以定义一个结构体,包含所有需要共享的变量,然后在需要使用这些变量的函数中传递结构体指针即可。此外,你也可以考虑使用全局变量,但要注意全局变量的使用应该尽量避免,因为过多的全局变量可能导致代码的可读性和可维护性降低。
-
对于你的第二个问题,可以考虑将那些需要在多个函数中使用的变量作为全局变量,这样可以避免在每个函数中都传递这些变量。但是,要注意全局变量的使用应该尽量避免,因为过多的全局变量可能导致代码的可读性和可维护性降低。另外,如果一个函数需要调用其他函数,并且这些函数需要使用相同的变量,可以考虑将这些变量作为函数参数传递进去。

你可以把你需要用的参数写成一个结构体,函数传参传结构体指针就行了,

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^