2016-06-18 10 views
-3

Ich habe in den letzten paar Stunden ohne Erfolg, diesen Fehler zu debuggen versucht.
Wenn die folgende Batchdatei mit meinem Programm zu bauen,Fehler C2143: Syntaxfehler: fehlen ‚)‘ vor ‚Typ‘

REM Build process for text editor 
@echo off 
pushd build 
cl /Zi /MDd /IC:\Users\Giovanni\dev_lib\SDL2-2.0.4\include /I"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include" /I"C:\Program Files (x86)\Windows Kits\8.1\Include\shared" ..\*.c /link /NODEFAULTLIB:msvcrt.lib /ENTRY:mainCRTStartup /SUBSYSTEM:console /LIBPATH:C:\Users\Giovanni\dev_lib\SDL2-2.0.4\lib\x64 /LIBPATH:C:\Users\Giovanni\dev_lib\SDL2_image-2.0.1\lib\x64 SDL2.lib SDL2main.lib SDL2_image.lib /out:text_editor.exe 
popd 

ich die folgende Fehlermeldung in CMD erhalten:

Microsoft (R) C/C++ Optimizing Compiler Version 18.00.31101 for x86 
Copyright (C) Microsoft Corporation. All rights reserved. 

main.c 
..\main.c(36) : error C2143: syntax error : missing ')' before 'type' 

ist meine ganze Klasse hier:

#include <assert.h> 
#include <stdio.h> 
#include <SDL.h> 

#define BOOL u32 
#define TRUE 1 
#define FALSE 0 

#define SCREEN_WIDTH 1024 
#define SCREEN_HEIGHT 576 

typedef Uint32 u32; 
typedef Uint64 u64; 
typedef Sint32 i32; 
typedef Sint64 i64; 

int main (int argc, char *argv[]) { 

    SDL_Init(SDL_INIT_VIDEO); 

    SDL_Window *win = SDL_CreateWindow("Text Editor", 
             SDL_WINDOWPOS_UNDEFINED, 
             SDL_WINDOWPOS_UNDEFINED, 
             SCREEN_WIDTH, SCREEN_HEIGHT, 0); 
    assert(win); 

    SDL_Renderer *renderer = SDL_CreateRenderer(win, 0, SDL_RENDERER_SOFTWARE); 
    assert(renderer); 

    SDL_Texture *screen = SDL_CreateTexture(renderer, 
              SDL_PIXELFORMAT_RGB888, 
              SDL_TEXTUREACCESS_STREAMING, 
              SCREEN_WIDTH, SCREEN_HEIGHT); 
    assert(screen); 

    u32 *screen_pixels = (u32*) calloc(SCREEN_WIDTH * SCREEN_HEIGHT, sizeOf(u32)); 
    assert(screen_pixels); 

    SDL_Delay(3000); 

} 

(seine nur 40 Zeilen lang)

Wenn Sie könnten p leas erklären, was ich falsch mache (ich bin neu in C), das wäre sehr hilfreich! Vielen Dank!

+2

' sizeof() ist ein _C_ Operator, während 'sizeOf()' ist wahrscheinlich ein Tippfehler. (-: – user3078414

+0

http://stackoverflow.com/q/37874759/971127 – BLUEPIXY

Antwort

2

Die Meldung zeigt an, dass der Fehler auf der Leitung 36.

..\main.c(36) : error C2143: 

Ich glaube, das 36 Linie:

u32 *screen_pixels = (u32*) calloc(SCREEN_WIDTH * SCREEN_HEIGHT,sizeOf(u32)); 

Haben Sie irgendwelche Fehler dort zu sehen? Können Sie jede Variable identifizieren und auf dieser Leitung anrufen?

sizeof is not the same thing as sizeOf

+1

Ein Tippfehler ist wahrscheinlich, dass sizeof() sollte statt O. –

+2

@HenrikCarlqvist mit o geschrieben werden: Sie sind die Überraschung meines versteckten Text zu ruinieren. – abelenky

0

ich nicht auf Windows laufen lasse, aber dies sieht seltsam aus:

u32 *screen_pixels = (u32*) calloc(SCREEN_WIDTH * SCREEN_HEIGHT, sizeOf(u32)); 

Sie versucht haben, sizeof ohne Kapital O? `

+0

Bah, kann nicht andere Antworten während der Beantwortung sehen, die gleichen Antworten Kommentare :-) – totoro

Verwandte Themen