错误:应在“=”标记之前出现“;”、“”、“”或“)”

error: expected ';', ',' or ')' before '=' token

本文关键字:应在 错误      更新时间:2023-10-16

这里的fn print_list()中有一个错误,编译器显示以下错误

error: expected ';', ',' or ')' before '=' token

请帮忙,因为我是新手。

我认为这不是语法错误,我无法按照我的期望识别代码中的问题,它应该正常工作。请告诉我函数print_list中有什么问题,或者调用同一函数是否有任何问题。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct node 
{
    int value;
    struct node *next;
    }mynode;
void add(mynode **, int);
void print_list(mynode *);
main()
{
mynode *head=NULL;
add(&head, 10);
add(&head, 100);
add(&head, 1000);
print_list(head);
}
void add(mynode **head_1, int value)
{
 mynode *temp=NULL;
 mynode ** head = head_1;
 temp = malloc(sizeof(mynode));
 temp->value = value;
 temp->next = NULL;
 if (*head == NULL)
    {
        *head = temp;
    }
    else
    {
        while(*head!=NULL)
        {
            *head = (*head)->next;
        }
        *head = temp;
    }
    return;
}
void print_list(mynode *head)
(
    mynode *temp = head;
    while(temp != NULL)
    {
        temp=temp->next;
    printf("%d t", temp->value);    
    }
    )

使用 { 而不是 (

void print_list(mynode *head)
{
    mynode *temp = head;
    while(temp != NULL)
    {
        temp=temp->next;
    printf("%d t", temp->value);    
    }
}

你用错了大括号

 void print_list(mynode *head)
( //error should be {
    mynode *temp = head;
    while(temp != NULL)
    {
        temp=temp->next;
    printf("%d t", temp->value);    
    }
    )//error should be }

你必须对函数体使用 { 而不是 '('