mboost-dp1
Hjælp med et stykke c++ kode
- Forside
- ⟨
- Forum
- ⟨
- Programmering
Ja, jeg har brug for lidt hjælp, min compiler siger der er en syntax fejl men skriver ikke hvilken row. Jeg har siddet og stirret på det men kan sq ikke finde fejlen..
#include <stdio.H>
int main(int argc, char* argv[])
{
for( int i=20; i<300 i++ )
{
double f = 800.0 / i;
int ipart = (int)f;
double fpart = f - ipart;
if( fpart > 0.5f )
{
printf( "%3d %.2f %3d %6.2f\n", i, fpart, (int)(i * .675), (1.0-fpart) * (int)(i*.675) );
}
}
return 0;
}
fuck også, så gør den det igen..... Kan du hjælpe igen #2?
#include "quakedef.h"
#include "progsvm.h"
#include "pr_comp.h"
void check_player_name(void)
{
if(strlen(host_client->name) < 1) // ramzes: moved from progs.dat (cl_client.qc - first lines of PlayerPostThink)
{
strlcpy(host_client->name, Cvar_VariableString("default_name"), sizeof(host_client->name));
Host_ClientCommands("\nname %s\n", Cvar_VariableString("default_name"));
}
}
#define DEAD_NO 0
void CheckRules_Player(void)
{
double test = 0;
if(PRVM_EDICTFIELDVALUE(host_client->edict, prog->fieldoffsets.gameover)->float) // someone else quit the game already
return;
if(host_client->edict->fields.server->deadflag == DEAD_NO)
{
//host_client->edict->fields.server->play_time += sv.frametime;
//PRVM_EDICTFIELDVALUE(host_client->edict, prog->fieldoffsets.play_time)->_float += 1;
}
}
void OPR_PlayerPostThink(void)
{
check_player_name();
// if strcmp host_client->classname
if (!strcmp(PRVM_GetString(host_client->edict->fields.server->classname), "player"))
{
CheckRules_Player();
}
}
[url=#10]#10[/url] arne_v
->floatHvorfor skal de interne typer også absolut være keywords? Variable og typer er jo to forskellige scopes, så man kan sagtens definere en type og en variabel med samme navn. Det eneste sted jeg kan se hvor der kan være tvivl er med sizeof der både kan anvendes på en variabel og på en type. Den her kode compilerer f.eks. fint:
ser meget suspekt ud (float er et keyword).
#include <stdlib.h>
typedef struct foo{
int foo;
} foo;
int main()
{
foo *foo=calloc(1,sizeof(struct foo));
return foo->foo;
}
[url=#13]#13[/url] arne_v
En anden relateret ting, som kan være irriterende i nogle situationer er, at man ikke kan kalde et felt for errno. Jeg forstår godt hvorfor det er endt med at blive sådan, det demonstrerer bare, at makroer i C ikke altid kan opnå præcist det resultat man ønsker.
Og jeg synes heller ikke at det er specielt pænt at have variable og typer med samme navn.Som regel er det ikke nogen god idé, det vil jeg da give dig ret i. Og det stykke kode jeg skrev er da bestemt ikke noget jeg ville anvende i et seriøst program. Men i sjældne tilfælde kunne der være en grund til at navngive en variabel eller et felt i en struct med samme navn som en type.
En anden relateret ting, som kan være irriterende i nogle situationer er, at man ikke kan kalde et felt for errno. Jeg forstår godt hvorfor det er endt med at blive sådan, det demonstrerer bare, at makroer i C ikke altid kan opnå præcist det resultat man ønsker.
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.