Typedef函数指针 - use&或不使用它

时间:2016-02-10 11:47:50

标签: c typedef

对函数使用typedef,如下例所示,使用函数的地址或只使用函数有什么区别吗?

class TabBarViewController: UITabBarController {

    override func viewDidLoad() {

        super.viewDidLoad()

    }

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

    }

    override func viewDidAppear(animated: Bool) {

        // Creates image of the Button
        let imageCameraButton: UIImage! = UIImage(named: "cameraIcon")

        // Creates a Button
        let cameraButton = UIButton(type: .Custom)
        // Sets width and height to the Button
        cameraButton.frame = CGRectMake(0.0, 0.0, imageCameraButton.size.width, imageCameraButton.size.height);
        // Sets image to the Button
        cameraButton.setBackgroundImage(imageCameraButton, forState: .Normal)
        // Sets the center of the Button to the center of the TabBar
        cameraButton.center = self.tabBar.center
        // Sets an action to the Button
        cameraButton.addTarget(self, action: "doSomething", forControlEvents: .TouchUpInside)

        // Adds the Button to the view
        self.view.addSubview(cameraButton)

    }

    func doSomething() {

        print("Action of camera button")

    }

}

1 个答案:

答案 0 :(得分:3)

在C语言中,函数在大多数上下文中被隐式转换为函数指针。因此,您认为f[0] = foof[1] = &foo之间没有区别。我更喜欢后一种惯例,但实际上,两者都同样好。