10 Manieren om code aan te passen:: Blokkeert

10 Manieren om code aan te passen:: Blokken - dummies

Code:: Blokken worden geleverd met standaardinstellingen die het meest natuurlijk zijn voor de meeste C ++ -toepassingen; Als je echter steeds meer tijd in de omgeving doorbrengt, zul je misschien die code vinden:: Blokken kunnen een vriendelijker plek zijn met slechts een paar aanpassingen.

Gebruik tabteken

Of gebruik meer bepaald tabteken. Deze instelling maakt geen enkel verschil als u aan een project werkt waarin iedereen altijd Code:: Blocks zal gebruiken. Het probleem met tabtekens is echter dat verschillende editors de neiging hebben om tabbladen anders te interpreteren. Sommige editors verplaatsen de cursor naar de volgende tabstop, sommige editors verplaatsen de cursor over een aantal tekens en niet alle editors zijn het erover eens hoeveel tekens moeten worden toegewezen voor een tabblad. Gelukkig interpreteren alle editors ruimtes hetzelfde, dus het is veel veiliger om de code te vertellen: Blokkeert editor om altijd spaties te gebruiken en nooit tabbladen op te slaan in de bronbestanden. Selecteer hiervoor Instellingen → Editor. Selecteer nu de Algemene instellingen aan de linkerkant en zorg ervoor dat Gebruik TAB-teken niet is aangevinkt.

Syntax highlighting

Syntax highlighting wijzigt de kleuren van verschillende soorten structuren, met een kleur voor trefwoorden, een andere kleur voor variabele namen, een derde voor tekenreeksen, enzovoort. Dit is erg handig om onnozele fouten te voorkomen terwijl u typt. Als u bijvoorbeeld een trefwoord verkeerd speldt, wordt dit niet weergegeven in de kleur van het trefwoord. Als u deze functie wilt inschakelen, selecteert u Instellingen → Editor → Syntaxis benadrukken. Normaal Code: Blokken kunnen de taal van de extensie van de bestandsnaam vertellen. Als u een niet-standaard bestandsextensie gebruikt, moet u deze toevoegen aan de lijst door Filemasks te selecteren. Bovendien kunt u de markeringsopties voor syntaxis vanuit dit venster aanpassen om beter aan uw behoeften te voldoen. Dit is vooral belangrijk als u een of andere vorm van zichtproblemen heeft, met name elke vorm van kleurenblindheid.

Broncode formatter

Dit is misschien ouderwets, maar een goede programmeur moet een beetje trots zijn op het uiterlijk van zijn code. Dit vereist het creëren en gestaag naleven van een coderingsstandaard. Sterker nog, als je aan een groot team werkt, zou iedereen dezelfde coderingsnorm moeten gebruiken. Anders ziet de code er rommelig uit, omdat modules die door één persoon zijn geschreven, er één uitzien en aanvoelen, terwijl die geschreven door een teamgenoot er anders uitzien - zeer onprofessioneel.

Het afdwingen van de naleving van een coderingsformatiestandaard is eenvoudig in Code:: Blokken. De code-editor zal uw code opnieuw formatteren zodat deze op elke gewenste standaard past.

De code:: Blokken broncode formatter past variabele namen niet aan. Erger nog, het zal uw programmalogica niet raken. Dus als je crummy-code schrijft, geef het dan niet de schuld aan de code:: Blokkeert de editor.

Selecteer Instellingen → Editor en selecteer vervolgens Bronformattering in de lijst die verschijnt om een ​​venster te krijgen dat op Afbeelding 1 lijkt. In het voorbeeldvenster ziet u hoe uw keuzes er in de praktijk uit zullen zien. Dit voorbeeld volgt de ANSI-standaard, maar u kunt kiezen uit vele andere gemeenschappelijke normen, of u kunt Aangepast selecteren en vervolgens op de tabbladen Inspringing en Opmaak klikken om uw eigen standaard te maken.

Afbeelding 1: het instellen van de formatter van de broncode kan u helpen een coderingsstijl uniform toe te passen.

Nadat u een standaard hebt geselecteerd, probeert de editor u te verleiden deze standaard te gebruiken. Als u bijvoorbeeld invoert als (true) en vervolgens op Enter drukt, plaatst de editor de cursor op de inspringende locatie onder de als . Als u vervolgens een openstaande accolade invoert, maakt de editor een back-up, plaatst u de accolade in lijn met de i in als , naar de volgende regel springt, en steek in.

Nog beter, als u klaar bent met coderen, als u Plug In → Broncode formatter (AStyle) selecteert, zal de editor door uw module gaan en de huidige broncodestandaard opnieuw toepassen. Dus als je maatje niet zo voorzichtig was met zijn programmering als je was, geen zorgen te maken - een paar muisklikken en het is allemaal opgeruimd.

Code afkortingen

Dit is een rare optie. Als u veel codeert (lees: veel ! ), kunnen codebeschrijvingen tijd besparen, vooral als u geen erg goede typist bent. Met codeafkortingen kunt u een codewoord invoeren en vervolgens op Ctrl + J drukken en voila, de code:: Blocks-editor voert het overeenkomstige vooraf gedefinieerde sjabloon in dat u vervolgens intypt.

Als u bijvoorbeeld zou invoeren > klasse in een kopie van Code:: Blocks en dan ingevoerd Ctrl + J, Code:: Blocks vraagt ​​u eerst naar de naam van uw klas en dan vult u alle spullen in die in Figuur 2 worden getoond. < Afbeelding 2: het gebruik van een afkorting van een broncode kan u veel tijd besparen als u eraan denkt om het te gebruiken! Code:: Blokken worden geleverd met een reeks afkortingen die al zijn gedefinieerd, maar u kunt alle gewenste afkortingen toevoegen door Instellingen → Editor te kiezen en vervolgens de optie Afkortingen aan de linkerkant van het venster te selecteren.

Het voordeel van codeafkorting is dat het veel typen kan besparen en dat het automatisch de opmaaknorm voor broncodes die u selecteert, afdwingt. Zeer snelle typist (of zou dat keyboarder zijn?) Krijgt misschien niet veel van deze functie, maar als je niet alle tien vingers gebruikt wanneer je typt of anders gewoon traag bent op het toetsenbord, wil je waarschijnlijk dit gebruiken voorzien zijn van.

AutoComplete

Code:: Blocks heeft deze coole functie genaamd AutoComplete. Nadat u een minimaal aantal letters hebt ingevoerd (de standaardinstelling is vier, maar u wijzigt dat), als u bij het typen stopt, zoekt Code:: Blocks naar alle dingen die met die letters beginnen.Op deze manier kan Code:: Blokken anticiperen op wat u probeert te zeggen.

Bijvoorbeeld in het Budget5-programma dat is inbegrepen bij het downloadbare materiaal van Dummies. com, als je

Acco

invoert en dan even een halve seconde pauze (dat is niet erg lang!) dan verschijnt er een venster zoals getoond in figuur 3 dat de enige twee dingen biedt die Code:: Blocks kent in dit programma dat begint met Acco: de klasse Account en de typedef AccountPtr . Omdat je Account , bedoelde, kun je gewoon op Enter drukken en dit zal dit voor mij invullen. Figuur 3: Code:: Blocks vindt slechts twee wedstrijden voor Acco in dit programma. De eerste is waar ik naar op zoek was. In dit voorbeeld maakt u een aanwijzer voor een

account

genaamd pAcc . Wanneer u vervolgens pAcc -> invoert en vervolgens pauze, geeft Code:: Blocks een venster met de openbare leden van Account , zoals weergegeven in afbeelding 4. Afbeelding 4: Gegeven een object, Code:: Blocks vindt de publieke leden toegankelijk vanuit dat object. Dit is een interessante functie wanneer u naar uw eigen klassen verwijst. Meer dan wat dan ook, selecteren uit de lijst betekent dat je de functienaam niet verkeerd hebt ingevoerd of verkeerd gespeld hebt.

Deze functie wordt pas echt interessant als u een object invoert dat in een bibliotheek is gedefinieerd. Bijvoorbeeld als u

cout invoert.

, u krijgt een lijst met openbare leden die beschikbaar zijn voor het cout -object. Dit kan erg handig zijn als je geen documentatie hebt of als je gewoon niet weet waar je moet beginnen. Schakel alle waarschuwingen in Het inschakelen van alle waarschuwingen is een goed idee. Fouten die verschijnen tijdens het compileren zijn veel gemakkelijker te vinden (duh!) En te repareren dan die waarbij je tijdens runtime zelf moet jagen. Dat is de reden waarom de C ++ -syntaxis zo kieskeurig is - hij wil ervoor zorgen dat je exact hebt gecodeerd wat je van plan was voordat het uitvalt en een uitvoerbaar bestand maakt dat iets heel anders doet.

Er zijn echter een paar dingen (nogal wat dingen eigenlijk) die de GNU C ++ - compiler zal repareren en doorgaan zonder commentaar, als u dat wilt. Het is bijvoorbeeld geen fout om een ​​variabele in een functie te definiëren en deze dan nooit te gebruiken. Of om een ​​return in het midden van een functie te plaatsen, zodat de coderegels na de return nooit kunnen worden uitgevoerd. Dit zijn geen fouten, maar ze zien er wel erg vreemd uit voor een wantrouwende compiler.

De GNU-compiler genereert een waarschuwing als een van deze twee gevallen of een van de tientallen andere verdachte constructies in uw code wordt weergegeven. U moet elke waarschuwing bespreken om ervoor te zorgen dat u begrijpt waar de compiler over klagen en waarom. Probeer het probleem op te lossen als je het maar kunt begrijpen, zelfs als je ervoor kiest om het niet te repareren.

Waarschuwingen zullen veel fouten blootleggen die op het punt staan ​​fouten in uw programma's te worden.

Een nieuw builddoel maken

De code:: Blokkenomgeving stelt u in staat om meer dan één builddoel te maken. Met een builddoel kunt u een afzonderlijk uitvoerbaar bestand met unieke build-instellingen maken.U wilt bijvoorbeeld absoluut symbolinformatie opnemen in het uitvoerbare bestand dat u gebruikt voor foutopsporing, maar niet in datgene dat u naar klanten wilt verzenden (zie hieronder voor meer informatie).

U kunt het gemakkelijkst een debug-builddoel en een Release-builddoel maken wanneer u het project maakt - laat de wizard al het werk voor u doen. Het gebeurt echter vaak dat na weken van werken aan en debuggen van een project, je het alleen gaat vrijgeven om te ontdekken dat er geen Release-doel is. Geen zorgen, u kunt altijd zelf een nieuwbouwdoel maken.

Als u een nieuw builddoel wilt maken, selecteert u Project → Eigenschappen en selecteert u het tabblad Build Targets. U ziet iets dat lijkt op Afbeelding 5, waarin het Budget5-programma wordt weergegeven met een enkele Debug-builddoelstelling.

Afbeelding 5: een van de projecteigenschappen is de lijst met builddoelen.

Gebruik de volgende stappen om een ​​Release-builddoel te maken:

Selecteer het foutopsporingsdoel en klik op Dupliceren.

Voer de naam in van het nieuwe builddoel, Release.

  1. Wijzig de uitvoerbestandsnaam in binReleaseBudget5. exe en de uitvoerdirectory van objecten naar objRelease.

  2. Klik op Build-opties om de gewenste build-opties in te stellen voor dit specifieke doel en klik op OK.

  3. U wilt absoluut de symboolinformatie uitschakelen en de optimalisatie inschakelen.

  4. Klik op OK om het nieuwe builddoel op te slaan.

    Als u een bepaald builddoel wilt maken, selecteert u Build → Select Target en kiest u uit de beschikbare doelen. Dit leidt Code:: Blokkeert met betrekking tot welk uitvoerbare bestand u wilt maken wanneer u build selecteert.

  5. Project - optimalisaties inschakelen

Misschien denkt u dat elke regel met C ++ - code een reeks machine-instructies genereert zonder rekening te houden met de coderegels eromheen, en in de niet-geoptimaliseerde modus zou u gelijk hebben. De optimizer die is ingebouwd in de GNU-compiler, kan een efficiënter programma genereren op basis van uw C ++ -bron door meerdere coderegels te doorzoeken.

Overweeg het volgende triviale en volledig opgemaakte (maar slimme) voorbeeld:

// i ++; MOV EAX, i [BP] INC EAX MOV i [BP], EAX // fn (i) MOV EAX, i [BP] DRUK EAX CALL FN

Hier is de regel

 i ++ 

geconverteerd naar de drie regels machinecode die volgen: Laad de waarde i

  1. in het EAX-register. Verhoog het EAX-register. Sla de opgehoogde waarde opnieuw op in

  2. i

  3. . De volgende regel converteert het gesprek fn (i)

    naar het volgende. Laad de waarde i

  4. in het EAX-register. Druk de waarde van EAX op de stapel. Voer de oproep uit.

  5. Merk op dat stap 4 eigenlijk niet nodig is. Het is niet nodig om de waarde

  6. i

in het EAX-register te laden, omdat de waarde al aanwezig is in stap 1, 2 en 3. Zelfs een middelmatige optimizer zou dit feit opmerken en de tweede niet genereren MOV EAX, i [BP] . Dit is niet echt een besparing, maar dit voorbeeld is gemakkelijk te begrijpen, ook al is het niet zo'n grote verbetering. Je zou een echte fan van assembly-taal moeten zijn om de meeste optimalisaties te begrijpen die de GNU-compiler maakt. U kunt optimalisaties voor een bepaalde build inschakelen door Project → Build-opties te selecteren, links de build Release te selecteren en een van de optimalisatie-opties te selecteren.

Technisch gezien zijn er verschillende optimalisatie-opties omdat de optimizer veel tijd kan kosten. Als u een zeer groot project hebt, heeft het weinig zin om veel tijd te besteden aan het optimaliseren van een module die niet vaak wordt uitgevoerd. Voor kleine tot middelgrote projecten kunt u de volledige optimalisatie inschakelen - u merkt de extra paar seconden die nodig zijn om te compileren niet.

U kunt deze optie inschakelen voor alle builds door Instellingen → Compiler te selecteren, vervolgens het tabblad Compilator te selecteren en een van de Optimize-cases te selecteren; dit is echter niet zo'n goed idee. Schakel geen optimalisatie in de Debug-release van het project in als u van plan bent de debugger te gebruiken. De wijzigingen in de code die de optimizer uitvoert, zorgen ervoor dat het programma lijkt rond te springen in een semi-willekeurige wandeling wanneer u er doorheen probeert te stappen.

Project - schakel de foutopsporingssymbolen uit> Symboolinformatie wordt alleen in het uitvoerbare bestand opgenomen voor het gebruik van de foutopsporing. Deze informatie zou niet moeten worden opgenomen in de versie die u naar gebruikers verzendt: het vergroot de omvang van het uitvoerbare bestand onnodig en, erger nog, het geeft gevaarlijke informatie vrij aan hackers als u probeert een kwetsbaarheid in uw programma te vinden.

Om foutopsporingsinformatie in het Release-builddoel uit te schakelen, selecteert u Project → Build-opties en selecteert u vervolgens het doel Release aan de linkerkant. Zorg er nu voor dat de optie Foutopsporingssymbolen produceren [-g] is uitgeschakeld voor het releasetarget. (Nu is het een goed moment om ervoor te zorgen dat er op deze oplossing wordt geklikt voor het Debug-builddoel.)

Project - de argumenten van een programma instellen

Sommige programma's zijn bedoeld om te worden uitgevoerd met opdrachtregelargumenten. Code:: Blocks biedt het volgende mechanisme voor het leveren van opdrachtregelargumenten bij het uitvoeren van een dergelijk programma vanuit de code:: Blokkenomgeving:

Selecteer Project → Stel programma's in 'Argumenten.

Selecteer het builddoel in het bovenste venster.

Voer wat u maar wilt in het venster Program Argumenten in.

  1. Selecteer OK om het venster te sluiten.

  2. Wanneer u Start of Uitvoeren invoert, geeft Code:: Blocks deze argumenten aan uw programma.