我正在阅读《用Python和Pygame进行程序街机游戏》一书,并在第12章:类简介的末尾研究“实验室”。
我为此编写的代码通过调用其构造函数而不是颜色来随机化在“ my_list”中创建的每个形状的坐标大小和移动方向,但是创建的所有形状都具有相同的颜色,这是为什么?
import pygame
import random
# Define some colors
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)
class Rectangle():
x = 0
y = 0
width = 10
height = 10
change_x = 2
change_y = 2
color = [0, 0, 0]
def __init__(self):
self.x = random.randrange(0, 700)
self.y = random.randrange(0, 500)
self.change_x = random.randrange(-3., 3)
self.change_y = random.randrange(-3., 3)
self.width = random.randrange(20, 70)
self.height = …Run Code Online (Sandbox Code Playgroud) 我从C编程的第19章,现代方法开始编程项目4 .我的代码有效但我收到此警告试图传递一个函数返回void *参数到printf转换说明符%s.
format
%s需要类型的参数char *,但参数2具有类型void * [-Wformat=]
我可以通过将函数的返回类型转换为char *类似来轻松地消除警告
printf("%s\n", (char *) function(param));
Run Code Online (Sandbox Code Playgroud)
但我只是想知道为什么这是必要的,因为类型void *会自动转换为另一种指针类型.