Im в настоящее время получаю ошибку:ожидается первичное выражение, прежде чем «» Маркер
kernel.c++:76:21: error: expected primary-expression before ',' token
Task task1(&gdt , taskA);
^
kernel.c++:77:21: error: expected primary-expression before ',' token
Task task2(&gdt , taskB);
Не знаю, почему это происходит, вот код моего kernel.C++ упрощена:
void taskA();
void taskB();
extern "C" void kernelMain
(
/*arguments...*/
)
{
gdt gt;
TaskManager taskManager;
Task task1(&gdt , taskA);
Task task2(&gdt , taskB);
taskManager.AddTask(&task1);
taskManager.AddTask(&task2);
}
void taskA()
{
while(true)
printf("A");
}
void taskB()
{
while(true)
printf("B");
}
Если вы хотите, чтобы увидеть мой реальный код ядра: https://github.com/amanuel2/OS_Mirror/blob/master/kernel.c%2B%2B .. Любая помощь
Здесь упрощена мой task.h:
class Task
{
friend class TaskManager;
private:
uint8_t stack[4096]; // 4 KiB
CPUState* cpustate;
public:
Task(gdt *GlobalDescriptorTable, void entrypoint());
~Task();
};
class TaskManager
{
private:
Task* tasks[256];
uint32_t num_task;
uint32_t current_task;
public:
TaskManager();
~TaskManager();
bool AddTask(Task* task);
CPUState* Schedule(CPUState* cpustate);
};
Если вы хотите, чтобы увидеть весь код task.h здесь это: https://github.com/amanuel2/OS_Mirror/blob/master/task.h ..
и, наконец, свести к минимуму task.C++:
Task::Task(gdt *GlobalDescriptorTable, void entrypoint())
{
/*Stuff Happenes Here.. But i Minimized it*/
}
Если вы хотите, чтобы увидеть фактический task.C++ вот он: https://github.com/amanuel2/OS_Mirror/blob/master/task.c%2B%2B .. Я не понимаю, почему я получаю эту ошибку. Любая помощь была бы весьма признательна.
Не является ли 'gdt' типом? Я думаю, что вы хотите '& gt', когда вы создаете 'task1' и' task2' или это опечатка? –
предлагают использовать разные имена для типов, чем для переменных –
Да, извините @ ТимотиМарфи .. моя ошибка. Его решение сейчас. Спасибо, я должен удалить этот вопрос? – amanuel2