Sida 1 av 2
Mitt första C program (Quincy 2005)
Postat: 5 oktober 2009, 13:43:18
av jesse
Ska börja med C tänkte jag (eller C++ så småningom kanske om det är en fördel)
Då jag hatar att hålla reda på hela toolchain själv med alla attribut och makefiler med mera så ville jag ha ett färdigt IDE med allt inbyggt, bara att klicka på "build and run".
Hittade inget integrerat IDE direkt som funkade i PCLinuxOS så jag letade upp ett program för Windows och det första vettiga spm jag råkade stöta på var
Quincy 2005. Installerade och - vips . fungerade direkt! Eller nästan. Normalt trodde jag att kommentarer gjordes med
//xxxxxx men det blev fel. Det funkade bara med
/* xxxxxxx */
Mitt första program:
Kod: Markera allt
// mitt första C-program
#include <stdio.h>
int main(void){
printf("Nu testar vi detta.");
}
gav upphov till ca 25 felmeddelanden!
Lite momdifierat och allt gick utmärkt:
Kod: Markera allt
/* mitt första C-program */
#include <stdio.h>
int main(void){
printf("Nu testar vi detta.");
}
hm.. vad ville jag säga med detta inlägget då? Grattis till mig själv
Men: Vilka IDE kör ni när ni ska göra C/C++ program för PC?
Det verkar finnas ett verktyg i detta IDE som heter "FLUID Screen Designer" typ "what you see is what you get" där man kan lägga dit text, bilder och knappar mm. i ett fönster. Nån som har provat det? Fattar inte riktigt hur jag ska börja?
Är det ett vettigt val att jag börjar med Quincy 2005, eller finns det mycket bättre gratis-IDE? Vilka använder ni? och finns det inga för Linux? Jag har ju Netbeans också, men den är nästan för överambitiös - det är för mycket att hålla reda på med miljoner verktyg och options.
Re: Mitt första C program (Quincy 2005)
Postat: 5 oktober 2009, 14:34:38
av sodjan
När jag höll på med Windows portningen av Xwisp2w så körde jag med Lcc Win32.
http://www.cs.virginia.edu/~lcc-win32/
Fungerade helt OK...
Re: Mitt första C program (Quincy 2005)
Postat: 5 oktober 2009, 14:36:41
av bos
Om din C-kompilator inte klagar det minsta på den andra koden så känns det som att något är skumt. Det finns ett fel (inte superallvarligt, men ändå ett fel) i din kod och om kompilatorn inte ens ger en varning på det så skulle inte jag lita på den för större projekt. (tips: en funktion som är prototypad att returnera int och inte returnerar något ska det gnällas lite på)
Men för att svara på din fråga; jag själv använder Emacs (makefile-mode, cc-mode samt gud-mode) som IDE.
Re: Mitt första C program (Quincy 2005)
Postat: 5 oktober 2009, 14:44:15
av Nerre
// för kommentarer är väl ett påfund som kom i C++?
Re: Mitt första C program (Quincy 2005)
Postat: 5 oktober 2009, 14:46:53
av bos
Ja.
Re: Mitt första C program (Quincy 2005)
Postat: 5 oktober 2009, 14:47:17
av speakman
Kör själv också Emacs (vilket inte kan annat än rekommenderas; en editor till *allt* tänkbart!), men något jag tror är rätt populärt för Windows (och är open source et al) är
http://www.bloodshed.net/dev/
Re: Mitt första C program (Quincy 2005)
Postat: 5 oktober 2009, 14:48:31
av sodjan
I MS-C miljö är // OK per default, men om man slår över till ren ANSI-C
så får man fel även där. Enklast är väl att skita i //-kommenterar...
Re: Mitt första C program (Quincy 2005)
Postat: 5 oktober 2009, 16:28:51
av jesse
tips: en funktion som är prototypad att returnera int och inte returnerar något ska det gnällas lite på
ja, sjutton. Å andra sidan har jag aldrig sett en main() som slutar med return.
jag testade och du har rätt: den klagar inte alls på detta heller:
Kod: Markera allt
/* mitt första C-program */
#include <stdio.h>
int testar(int a){
int b=a*100;
a++;
}
int main(void){
int z=testar(4);
printf("Nu testar vi detta.\n");
printf("z aer %d",z);
}
utskrift:
EDIT: det går att ställa in "nivån" på varningarna. Om jag väljer "visa alla varningar" så kommer dom upp, samt "unused variable b"
Emacs kanske vore något, om jag bara hade ork att lära mig att konfigurera den. Det ska väl grejas en hel del innan man får den att fungera som ett smidigt IDE får jag för mig.
Re: Mitt första C program (Quincy 2005)
Postat: 5 oktober 2009, 16:30:43
av jesse
om man slår över till ren ANSI-C så får man fel även där. Enklast är väl att skita i //-kommenterar...
Jo, jag har valt att kompilatorn följer ANSI/ISO standard för att inte lära mig en massa dumheter. Bättre att vara sträng i början än att försöka fixa till saker i efterhand.
Re: Mitt första C program (Quincy 2005)
Postat: 5 oktober 2009, 16:37:28
av Zyxel615
Öh... Kompilatorn verkar utföra b = a * 100 och lägga resultatet i z trots att du aldrig säger åt kompilatorn att göra det?? "Hittar den på" en tänkbar variabel att returnera, eller?
Re: Mitt första C program (Quincy 2005)
Postat: 5 oktober 2009, 16:47:03
av sodjan
> Å andra sidan har jag aldrig sett en main() som slutar med return.
??
Det är väl standardsättet att returnera en status/exit kod till OS'et ?
Re: Mitt första C program (Quincy 2005)
Postat: 5 oktober 2009, 16:50:01
av bos
> z are 400
Funktionen returnerar enligt din kod inget värde, ändå får anroparen tag i ett. Vad sjutton är det för trasig kompilator egentligen?
> Å andra sidan har jag aldrig sett en main() som slutar med return.
Då har du exponerats för dålig och ful kod. Läs mer här:
http://www.delorie.com/djgpp/v2faq/faq22_25.html
To summarize, using void main is unsafe and can potentially do evil things to your program. It is best to avoid it.
Re: Mitt första C program (Quincy 2005)
Postat: 5 oktober 2009, 17:03:39
av SvenW
>> Å andra sidan har jag aldrig sett en main() som slutar med return.
main() returnerar en felkod till skalet.
0 brukar signalera att allt är rätt, ju högre siffra ju allvarligare fel. Felkoden är bra att ha när kan kör en kedja av program.
Flertalet unixprogram returnerar felkod.
>> jag ha ett färdigt IDE med allt inbyggt, bara att klicka på "build and run".
Det där är helt emot min, och jag tror även unix, filosofi.
Med den filosofin skall man kanske avstå från att överhuvudtaget ägna sig åt c-programmering. Men, trots det, fortsätt gärna.
Det är aldrig fel att prova på. Du kommer att ändra dig med tiden!
I övrigt håller jag med om att Emacs är den bästa programmeringsmiljön.
Men den tar tid att lära sig, och det är naturligtvis ett minus.
Man kan skriva enkla program med vilken editor och vilket 'IDE' som helst. Problemen kommer när när programmen blir stora.
Re: Mitt första C program (Quincy 2005)
Postat: 5 oktober 2009, 17:07:16
av idiotdea
Anledningen till att 400 returneras beror antagligen på att returvärdet för en funktion returneras i ett register. Om jag minns rätt sparas returvärdet i EAX-registret (linux/gcc/x86). Antagligen utförs b = a * 100 "på registret" EAX. När funktionen sedan returnerar ligger värdet redan i EAX och därför verkar det som att funktionen returnerar b. Lite flummigt förklarat kanske...
Men tala med assemblern (via växel -S om jag minns rätt) så berättar han nog svaret

Re: Mitt första C program (Quincy 2005)
Postat: 5 oktober 2009, 17:09:22
av sodjan
> main() returnerar en felkod till skalet.
Nej, en *kod* (eller möjligen returkod eller statuskod).
Om det är en *fel* -kod eller inte beror ju på...
> ju högre siffra ju allvarligare fel.
Det har inget med C att göra. Olika plattformat har olika definitioner på det.