如何使用函数指针运行随机函数

时间:2019-03-02 19:23:53

标签: c random

我正在制作一个琐事游戏,想运行我在函数中遇到的随机问题。我已创建此代码作为测试,这些不是我要运行的实际功能:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

int N = 3;
void (*func_ptr[3]) = { moreInformation, startofgame, level1}; [rand() % N]();

但是每次运行它时,我都会收到一条错误消息,说我必须在最后一对括号中放入一个标识符。是否有其他方法可以执行此操作,或者我应该在括号中添加什么作为标识符。

1 个答案:

答案 0 :(得分:1)

我不知道这是否符合“更好”的要求,但这是一个简单而直接的工作示例。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void question1(void) {
    puts("Question 1");
}

void question2(void) {
    puts("Question 2");
}

void question3(void) {
    puts("Question 3");
}

void (*function_ptr[3])(void) = {question1, question2, question3 };

int main(void)
{
    srand((unsigned)time(NULL));
    (*function_ptr[rand() % 3])();
    return 0;
}