Προς το περιεχόμενο

C tutorial by phr0z in Greek


phr0z

Προτεινόμενες αναρτήσεις

Προσωπικα πιστευω οτι ενα μεγαλο μερος του "standar" στη γλωσσα c ειναι μια μπουρδα και μιση. Δεν μπορεις να επιμενεις οτι το printf ειναι καλυτερο ας πουμε με το WriteConsole μονο και μονο επειδη ανηκει στα standar. Standar μπορεις να πεις οτι ειναι η συνταξει ενους struct πχ struct tag body labels. Η main οπως και να το κανουμε εξαρταται απο τον linker αρα αυτοματος απο το subsystem, δηλαδη δε θα κανεις οτι σου λεει το standar αλλα αυτο που θελει η εφαρμογη σου, πχ αν θες να γραψεις ενα console σε win θα δεις τα docs που σου προσφερει το OS και θα διαλεξεις ποια σου ταιριαζει. Δεν ειναι δυνατον γραφεις ενα console για μια ελληνικη εργασια και να μην υποστηριζει ελληνικα μονο και μονο επειδη το λεει το standar. Πως στο καλο θα περασεις αυτη εδω "c:\test\υποφακελος\folder\αρχειο.txt" την διευθυνση στα arg;

 

Μαρεσει που ποσταρετε και καποιες δηθεν αποψεις περι του main που σαν επιχειρημα εχουν το παρακατω

So, if you want your software to be portable, please make main return int. It does matter.
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 73
  • Δημ.
  • Τελ. απάντηση
Θα εκπλαγεις πολυ αν πας ποτε να διδαξεις σε αρχαριο smirnov.

Θα εκπλαγεις πολυ περισσότερο αν πας ποτε να πιάσεις κασμά smirnov.

Θέλει αντίστοιχες "δεξιότητες" με τον προγραμματισμό.

 

int main void ?

καμιά "παραπομπή" για τον ουσιαστικό λόγο ;

 

.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@Evgenios

 

Καταρχήν, άνευ παρεξηγήσεως, το συντακτικό και η ορθογραφία σου δεν σε κολακεύουν καθόλου και,

το κυριότερο, δυσκολεύουν την ανάγνωση των γραφομένων σου.

 

Πέαν αυτού, το WriteConsole είναι νομίζω προσθήκη της MS και δεν ανήκει στην γλώσσα.

Με το ίδιο σκεπτικό θα έπρεπε να υιοθετηθεί μια πληθώρα άλλων επεκτάσεων από τρίτους

όπως εντολές για μαθηματικές διεργασίες, γραφικά, παραλληλία, βιβλιοθήκες κ.α.

Αυτό συμβαίνει πράγματι αλλά υπό προυποθέσεις και μετά από διαδικασία.

Π.χ. σε ότι αφορά την C++, νομίζω ότι έχει γίνει κατ' επανάληψη με την βιβλιοθήκη Boost.

Αλλά γίνεται και αλλού, όχι μόνον στην C++.

Π.χ. στο Οpengl, διάφορες επεκτάσεις (GL_extensions) που εφαρμόζουν συγκεκριμένοι κατασκευαστές

καρτών γραφικών αν αποδειχθoύν επιτυχείς, σε επόμενες εκδόσεις εισάγονται στον standard του Opengl.

Αλλά το WriteConsole και πολλά άλλα ματζούνια της MS δεν μπορούν να ενσωματωθούν στο standard της C++ διότι

η MS δεν είναι καθόλου διατεθειμένη να ακολουθήσει την διαδικασία που απαιτείται και κάνει του κεφαλιού της.

 

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Προσωπικα πιστευω οτι ενα μεγαλο μερος του "standar" στη γλωσσα c ειναι μια μπουρδα και μιση. Δεν μπορεις να επιμενεις οτι το printf ειναι καλυτερο ας πουμε με το WriteConsole μονο και μονο επειδη ανηκει στα standar. Standar μπορεις να πεις οτι ειναι η συνταξει ενους struct πχ struct tag body labels. Η main οπως και να το κανουμε εξαρταται απο τον linker αρα αυτοματος απο το subsystem, δηλαδη δε θα κανεις οτι σου λεει το standar αλλα αυτο που θελει η εφαρμογη σου, πχ αν θες να γραψεις ενα console σε win θα δεις τα docs που σου προσφερει το OS και θα διαλεξεις ποια σου ταιριαζει. Δεν ειναι δυνατον γραφεις ενα console για μια ελληνικη εργασια και να μην υποστηριζει ελληνικα μονο και μονο επειδη το λεει το standar. Πως στο καλο θα περασεις αυτη εδω "c:\test\υποφακελος\folder\αρχειο.txt" την διευθυνση στα arg;

 

Μαρεσει που ποσταρετε και καποιες δηθεν αποψεις περι του main που σαν επιχειρημα εχουν το παρακατω

 

Κοίταξε το C στάνταρτ υπάρχει για ένα λόγο και αυτός είναι για να μπορείς να γράφεις κώδικα που μπορεί να επαναχρησιμοποιηθεί σε διάφορα λειτουργικά συστήματα, σε διάφορες αρχιτεκτονικές ενδεχομένως εντελώς ασύμβατες μεταξύ τους και για να εξασφαλίσει ότι ο κώδικας σου μεταφράζεται με το ίδιο αποτέλεσμα από κάθε μεταφραστή.

 

Τμήμα του στάνταρτ, για βασική διαχείριση των υπηρεσιών I/O είναι και το STDIO. Δεν καλύπτει τα πάντα, δεν προσφέρει όλες τις υπηρεσίες κάθε Λ.Σ. αλλά δεν είναι αυτός ο σκοπός του. Σκοπός του είναι να εξασφαλίσει ένα μίνιμουμ συμβατότητας μεταξύ διαφορετικών συστημάτων και σε αυτό τον τομέα τα καταφέρνει αρκετά καλά.

 

Όσον αφορά τώρα το Software Portability, μπορεί να μην σου φαίνεται σημαντικό αλλά ορισμένες φορές είναι, ειδικά όταν οφείλεις να γράψεις κώδικα ο οποίος θα πρέπει να εκτελείται κατά τον αυτό τρόπο σε διάφορα λειτουργικά συστήματα, πολλές φορές δίχως καν να έχεις πρόσβαση σε αυτά ή στους μεταφραστές τους. Αν δεν το ζήσεις αυτό ως εμπειρία δεν το εκτιμάς.

 

Από εκεί και πέρα, άμα δεν σε εξυπηρετεί η printf γράψε WriteConsole, χρησιμοποίησε και την wsprintf για το ανάλογο φορμάρισμα των στοιχείων (αν και θέλει προσοχή σε ορισμένους τύπους), βάλε πάνω και την ReadConsole για ανάγνωση, άλλαξε και το EntryPoint από main ή WinMain (αν πάμε σε GUI) σε κάτι δικό σου.. κανένα πρόβλημα. Και αυτό επιτρεπτό είναι αλλά δεν νομιμοποιεί τον χλευασμό του στάνταρτ. Αν είναι για πέταμα, δεν θα γινόταν τόσος ντόρος από τους κατασκευαστές μεταφραστών να μας ενημερώσουν για το πόσο πιστά το ακολουθούν τα κατασκευάσματα τους. Ούτε θα αφιερωνόταν τόσος χρόνος σε διάφορες επιτροπές από επιστήμονες υψηλού βεληνεκούς για τον καθορισμό του ;)

 

Αυτά τα ολίγα, από εμένα._

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Θα εκπλαγεις πολυ περισσότερο αν πας ποτε να πιάσεις κασμά smirnov.

Θέλει αντίστοιχες "δεξιότητες" με τον προγραμματισμό.

 

 

Φίλε μου, δεν υποτιμώ κάποιον όπως υπαινίσσεσαι.

Εγώ δεν έχω τις "δεξιότητες" να πιάσω τον κασμά αλλά έχω άλλες.

Όμοια, κάποια άτομα δεν έχουν τις δεξιότητες να ασχοληθούν με τον προγραμματισμό αλλά έχουν επίσης άλλες.

Ας καλλιεργήσουν λοιπόν αυτές αντί να παιδεύονται σε τομέα που δεν τους ταιριάζει ή/και δεν τους αρέσει.

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κοίταξε το C στάνταρτ υπάρχει για ένα λόγο και αυτός είναι για να μπορείς να γράφεις κώδικα που μπορεί να

επαναχρησιμοποιηθεί σε διάφορα λειτουργικά συστήματα, σε διάφορες αρχιτεκτονικές ενδεχομένως εντελώς ασύμβατες

μεταξύ τους και για να εξασφαλίσει ότι ο κώδικας σου μεταφράζεται με το ίδιο αποτέλεσμα από κάθε μεταφραστή.

 

Τμήμα του στάνταρτ, για βασική διαχείριση των υπηρεσιών I/O είναι και το STDIO.

Δεν καλύπτει τα πάντα, δεν προσφέρει όλες τις υπηρεσίες κάθε Λ.Σ. αλλά δεν είναι αυτός ο σκοπός του.

Σκοπός του είναι να εξασφαλίσει ένα μίνιμουμ συμβατότητας μεταξύ διαφορετικών συστημάτων και σε αυτό τον τομέα τα καταφέρνει αρκετά καλά.

 

Όσον αφορά τώρα το Software Portability, μπορεί να μην σου φαίνεται σημαντικό αλλά

ορισμένες φορές είναι, ειδικά όταν οφείλεις να γράψεις κώδικα ο οποίος

θα πρέπει να εκτελείται κατά τον αυτό τρόπο σε διάφορα λειτουργικά συστήματα,

πολλές φορές δίχως καν να έχεις πρόσβαση σε αυτά ή τους μεταφραστές τους.

Αν δεν το ζήσεις αυτό ως εμπειρία δεν το εκτιμάς.

 

Έχεις ένα βουνό δίκιο.

Μου έχει συμβεί στην Fortran και ήταν μεγάλος μπελάς.

Χρησιμοποιούσα αρκετές επεκτάσεις του compiler για διευκόλυνση.

Ωστόσο, κάποια στιγμή που χρειάστηκε να κάνω compile σε μεγαλύτερο σύστημα (ένα cluster συγκεκριμένα)

συνειδητοποίησα ξαφνικά ότι τα προγράμματά μου δεν δούλευαν !!!

Εξακολουθώ να χρησιμοποιώ τέτοιες "ευκολίες" αλλά από τότε είμαι υποψιασμένος.

 

Γι' αυτό και σε κάποια συζήτηση είχα ρωτήσει τους πιο ειδήμονες αν είναι προτιμότερο να

χρησιμοποιούμε την STL αντί τις αντίστοιχες κλάσεις της Qt όταν αυτές επικαλύπτονται λειτουργικά :

το σκεπτικό μου ήταν ότι η STL ανήκει στο standard ενώ η Qt όχι με ότι αυτό συνεπάγεται (δηλαδή τα παραπάνω που λες).

Ωστόσο, τότε μου είχατε απαντήσει (και εσύ) σχεδόν κατηγορηματικά υπέρ της Qt και κατά της STL.

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

έπρεπε να βάλω ένα : :mrgreen:

 

κάποια παραπομπή για τα, main void int;

 

 

Φίλε μου, δεν υποτιμώ κάποιον όπως υπαινίσσεσαι.

Εγώ δεν έχω τις "δεξιότητες" να πιάσω τον κασμά αλλά έχω άλλες.

Όμοια, κάποια άτομα δεν έχουν τις δεξιότητες να ασχοληθούν με τον προγραμματισμό αλλά έχουν επίσης άλλες.

Ας καλλιεργήσουν λοιπόν αυτές αντί να παιδεύονται σε τομέα που δεν τους ταιριάζει ή/και δεν τους αρέσει.

 

εννοούσα εκτός από φυσικές, καί νοητικές ! :mrgreen:

εκτιμώ το ύφος και το περιεχόμενο της γραφής σου____

 

ο ευγένιος σε σχέση με τα πρώτα του ποστ, γράφει τέλεια

 

.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Έχεις ένα βουνό δίκιο.

Μου έχει συμβεί στην Fortran και ήταν άκρως ενοχλητικό.

Χρησιμοποιούσα αρκετές επεκτάσεις του compiler για διευκόλυνση.

Ωστόσο, κάποια στιγμή που χρειάστηκε να κάνω compile σε μεγαλύτερο σύστημα (ένα cluster συγκεκριμένα)

συνειδητοποίησα ξαφνικά ότι τα προγράμματά μου δεν δούλευαν !!!

Εξακολουθώ να χρησιμοποιώ τέτοιες "ευκολίες" αλλά από τότε είμαι υποψιασμένος...

 

-

Φίλε μου, και εγώ μέχρι πριν μερικά χρόνια έκανα τα ίδια (και απαξιούσα το στάνταρτ βασιζόμενος συνεχώς σε επεκτάσεις), ως ότου χρειάστηκε κάποτε να μεταφέρω κώδικα σε άλλο C μεταφραστή! Και μετάνιωσα για την απρονοησία μου να μην σεβαστώ το στάνταρτ, το βρήκα δηλαδή μπροστά μου. Έκτοτε όπου μπορώ το χρησιμοποιώ εκτός και αν είμαι απόλυτα σίγουρος ότι ο κώδικας που γράφω δεν θα μεταφερθεί ποτέ σε διαφορετική πλατφόρμα ή μεταφραστή. Παθών και Μαθών.

 

Ωστόσο, τότε μου είχατε απαντήσει (και εσύ) σχεδόν κατηγορηματικά υπέρ της Qt και κατά της STL.

Σωστά και εξακολουθώ να είμαι υπέρ αλλά υπάρχει μια διαφορά την οποία εξήγησα και προηγουμένως. Καταρχήν εξαρτάται πόσο σε ενδιαφέρει η δυνατότητα μεταφοράς του κώδικα σε άλλες πλατφόρμες ή άλλους μεταφραστές. Αν δεν σε ενδιαφέρει, ok αλλά μην απαξιώνεις την αξία του στάνταρτ. Άρα ένα το κρατούμενο που λέμε. Ύστερα το QT για παράδειγμα, υποστηρίζει μια μεγάλη γκάμα μεταφραστών και λειτουργικών συστημάτων και κώδικας γραμμένος σε αυτό μεταφέρεται σχεδόν παντού ως έχει, συνεπώς δεν κινδυνεύεις να χάσεις τον κόπο σου εύκολα, ειδική περίπτωση το QT λοιπόν (εξαίρεση στον κανόνα). Δεύτερο το κρατούμενο λοιπόν. Συνεπώς ο κώδικας σε QT αν και εκτός του στάνταρτ της STL λόγο ισχυρής υποστήριξης από την εταιρία του, αντισταθμίζει τον κίνδυνο να βρεθείς ξεκρέμαστος διότι δρα ως ένα είδος στάνταρτ (ή framework πιο σωστά) από μόνο του -bingo! Πράγμα που δεν ισχύει όμως όσον αφορά το "main" ή την χρήση της WriteConsole του Windows API για ευνόητους λόγους.

 

Συνεπώς η αξία του "non-στάνταρτ", στάνταρτ που έχει εξελιχθεί το QT είναι εκείνη που τελικά καθιστά την χρήση των προσφερόμενων QT container λιγότερο επίφοβη και άρα ενισχύει την σημασία ενός στάνταρτ - δηλαδή την προσφορά μιας καθολικής βιβλιοθήκης, στην κουβέντα μας ;)

 

Σκέψου όμως τα QT container να μην δουλεύανε το ίδιο σε κάθε πλατφόρμα.. το ίδιο ισχύει και για την Boost που προαναφέρθηκε και σιγά, σιγά περνά στην STL.

 

Αυτή είναι η αξία του "κοινός αποδεκτού" (standard) τελικά.

:)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Eυχαριστώ για την απάντηση στο τελευταίο.

 

Τα ίδια ακριβώς πιστεύω, απλώς τότε θέλησα μια γνώμη από τους επαγγελματίες του χώρου επειδή εσείς

αντιμετωπίζετε συχνά αυτό το ζήτημα και είστε πιο ενημερωμένοι σε τέτοια θέματα.

 

Επιπλέον, θεωρώ ότι σε ότι αφορά το οπτικό περιβάλλον, ανάμεσα στην C# ή .Νet και στο Qt,

είναι προτιμότερο το Qt για όλους τους παραπάνω λόγους.

Και παρεμπιπτόντως, το έχω χιλιομετανιώσει που κάποτε ασχολήθηκα με το MFC.

 

Όσο για την Βοost που προανάφερα, απ' ότι είχα δει είναι καλή και σε πολλά σημεία καλύτερη από την STL,

π.χ. στην διαχείριση πινάκων (με πονάει πολύ αυτό το σημείο <_< ).

Αλλά η Boost ακολουθεί μια διαδικασία για να ενταχθεί στο standard, δεν κάνει ότι της καπνίσει όπως η ΜS.

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κοίταξε το C στάνταρτ υπάρχει για ένα λόγο και αυτός είναι για να μπορείς να γράφεις κώδικα που μπορεί να επαναχρησιμοποιηθεί σε διάφορα λειτουργικά συστήματα, σε διάφορες αρχιτεκτονικές ενδεχομένως εντελώς ασύμβατες μεταξύ τους και για να εξασφαλίσει ότι ο κώδικας σου μεταφράζεται με το ίδιο αποτέλεσμα από κάθε μεταφραστή.

 

Τμήμα του στάνταρτ, για βασική διαχείριση των υπηρεσιών I/O είναι και το STDIO. Δεν καλύπτει τα πάντα, δεν προσφέρει όλες τις υπηρεσίες κάθε Λ.Σ. αλλά δεν είναι αυτός ο σκοπός του. Σκοπός του είναι να εξασφαλίσει ένα μίνιμουμ συμβατότητας μεταξύ διαφορετικών συστημάτων και σε αυτό τον τομέα τα καταφέρνει αρκετά καλά.

 

Όσον αφορά τώρα το Software Portability, μπορεί να μην σου φαίνεται σημαντικό αλλά ορισμένες φορές είναι, ειδικά όταν οφείλεις να γράψεις κώδικα ο οποίος θα πρέπει να εκτελείται κατά τον αυτό τρόπο σε διάφορα λειτουργικά συστήματα, πολλές φορές δίχως καν να έχεις πρόσβαση σε αυτά ή στους μεταφραστές τους. Αν δεν το ζήσεις αυτό ως εμπειρία δεν το εκτιμάς.

 

Από εκεί και πέρα, άμα δεν σε εξυπηρετεί η printf γράψε WriteConsole, χρησιμοποίησε και την wsprintf για το ανάλογο φορμάρισμα των στοιχείων (αν και θέλει προσοχή σε ορισμένους τύπους), βάλε πάνω και την ReadConsole για ανάγνωση, άλλαξε και το EntryPoint από main ή WinMain (αν πάμε σε GUI) σε κάτι δικό σου.. κανένα πρόβλημα. Και αυτό επιτρεπτό είναι αλλά δεν νομιμοποιεί τον χλευασμό του στάνταρτ. Αν είναι για πέταμα, δεν θα γινόταν τόσος ντόρος από τους κατασκευαστές μεταφραστών να μας ενημερώσουν για το πόσο πιστά το ακολουθούν τα κατασκευάσματα τους. Ούτε θα αφιερωνόταν τόσος χρόνος σε διάφορες επιτροπές από επιστήμονες υψηλού βεληνεκούς για τον καθορισμό του ;)

 

Αυτά τα ολίγα, από εμένα._

 

Αυτα που εγραψα δεν τα εγραψα για να αισθανθω αντωτερος (δλδ αψηφωντας τα σουπερ στανταρ), εξαλλου αυτη τη δουλεια την κανουν αλλοι (το εχεις δει απειρες φορες στο φορουμ). Το πόιντ μου ειναι ξεκαθαρο, ανοικτα μυαλα τιποτα αλλο, η γλωσσα c εχει καμια 10ρια τοκενς, το θεμα ειναι να τα βαλεις στη σωστη σειρα τιποτα αλλο. Αν εσυ χρησιμοποιεις τη mymemoryallocator αντι του malloc δεν ειναι λαθος.

Αυτα φιλε μου. Ελπιζω να μη συνεχιστει αυτη η ασημαντη κουβεντα.

 

@vssmirnov εαν πιστευεις οτι με την ορθογραφια μου καιγονται τα εγκεφαλικα σου κυτταρα, τοτε μπορεις να με βαλεις στην λιστα αγνοησης, εξαλλου δεν εχω να πω τιποτα μαζι σου.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

 

@vssmirnov εαν πιστευεις οτι με την ορθογραφια μου καιγονται τα εγκεφαλικα σου κυτταρα, τοτε μπορεις να με βαλεις στην λιστα αγνοησης, εξαλλου δεν εχω να πω τιποτα μαζι σου.

 

 

To δικό μου μυαλό δεν μπορεί να καεί, έχει μεγάλες αντοχές.

Εγώ σου έκανα μιαν ευγενική υπόδειξη για να μην γίνεσαι διαρκώς ρεζίλι αλλά και για να δείχνεις ότι σέβεσαι αυτούς που σε διαβάζουν.

Επιμένοντας στην αδικαιολόγητη ανορθογραφία δείχνεις την αγραμματοσύνη και την τσαπατσουλιά σου και γελούν οι άλλοι μαζί σου,

εμένα τι με νοιάζει....

 

Το διανοητικό βεληνεκές ενός ανθρώπου φαίνεται εν πολλοίς και από τον τρόπο που γράφει/εκφράζεται.

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

[..]Αυτα φιλε μου. Ελπιζω να μη συνεχιστει αυτη η ασημαντη κουβεντα.

Συμφωνώ απόλυτα φίλε μου, το ζήτημα υπερκαλύφθηκε.

:)

 

Eυχαριστώ για την απάντηση στο τελευταίο.

 

Τα ίδια ακριβώς πιστεύω, απλώς τότε θέλησα μια γνώμη από τους επαγγελματίες του χώρου επειδή εσείς

αντιμετωπίζετε συχνά αυτό το ζήτημα και είστε πιο ενημερωμένοι σε τέτοια θέματα.

 

Επιπλέον, θεωρώ ότι σε ότι αφορά το οπτικό περιβάλλον, ανάμεσα στην C# ή .Νet και στο Qt,

είναι προτιμότερο το Qt για όλους τους παραπάνω λόγους.

Και παρεμπιπτόντως, το έχω χιλιομετανιώσει που κάποτε ασχολήθηκα με το MFC.

 

Βέβαια, αν θες υποστήριξη GUI σε πολλές πλατφόρμες το QT είναι μια πολύ σοβαρή λύση.

 

Σχετικά με την C# και αυτή εμπίπτει σε συγκεκριμένα στάνταρτ (ECMA-334 & SO/IEC 23270) όσον αφορά την γλώσσα αυτή καθ' εαυτή. Έτσι λοιπόν έχει μεταφερθεί σε UNIX/LINUX μέσο του MONO Project. Εκεί που σκουραίνουν τα πράματα όμως και η MS κάνει νερά, είναι στο το ".NET framework" καθώς άλλο η C# σαν γλώσσα και άλλο οι βιβλιοθήκες ".NET" εκεί γίνεται προσπάθεια από όσο γνωρίζω (διότι δεν παρακολουθώ το θέμα - όποιος το παρακολουθεί ας μας ενημερώσει πιο συγκεκριμένα) να υπάρχει μια υλοποίηση ένα-προς-ένα μεταξύ MS ".NET Framework" και MONO ".NET Framework" ώστε να μπορείς να μεταφέρεις άμεσα τον C# .NET κώδικα που έγραψες και χρησιμοποιεί διάφορες .NET βιβλιοθήκες κατευθείαν και δίχως τροποποιήσεις στην MONO C#.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 1 μήνα μετά...

Το βιβλίο είναι πολύ καλο. Θέλω όμως να μου προτίνετε ένα καλό βιβλίο ( οχι e-book ) να αγοράσω απο ένα βιβλιοπολείο. Έχετε κανένα καλό να μου προτίνετε ??? Ευχαριστώ.

ΥΓ: Για C και C++ θέλω !!! και για τα δύο το καλύτερο!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.


  • Δημιουργία νέου...