473,883 Members | 1,653 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

why still use C?

no this is no trollposting and please don't get it wrong but iam very
curious why people still use C instead of other languages especially C++.

i heard people say C++ is slower than C but i can't believe that. in pieces
of the application where speed really matters you can still use "normal"
functions or even static methods which is basically the same.

in C there arent the simplest things present like constants, each struct and
enum have to be prefixed with "struct" and "enum". iam sure there is much
more.

i don't get it why people program in C and faking OOP features(functi on
pointers in structs..) instead of using C++. are they simply masochists or
is there a logical reason?

i feel C has to benefit against C++.

--
cody

[Freeware, Games and Humor]
www.deutronium.de.vu || www.deutronium.tk
--
comp.lang.c.mod erated - moderation address: cl**@plethora.n et
Nov 13 '05
687 23866
In article <3F************ ***@saicmodis.c om>, James Kuyper
<ku****@saicmod is.com> writes
Christian Bau wrote:

In article <bm**********@g lue.ucr.edu>, th*@cs.ucr.edu wrote:
> C and C++ have a relatively large semantic intersection, i.e., set of
> programs to which C and C++ attach identical behavior. It's my
> impession that the intersecton includes the majority of actual C
> programs.


I think the majority of actual C programs will not compile as C++
programs at all; if the programmer never heard of C++ then it is just
too easy to have "new", "class" or "template" as an identifier.


I doubt that this problem, while quite real, affects "a majority" of
actual C programs. I think the number of C programs that wouldn't
compile because they still use unprototyped function declarations
(mainly in legacy code, one hopes) is a much larger. Does anyone care to
provide actual numbers? I have no idea where to find them.


I would say that as the majority of C programs are going to be on
embedded platforms, most of which use C with architecture specific
extensions you are unlikely to get them to compile in C++ compilers.

Many of the architectures don't have C++ compilers.

/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills Staffs England /\/\/\/\/\
/\/\/ ch***@phaedsys. org www.phaedsys.org \/\/
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
Nov 13 '05 #321
James Kuyper wrote:
Richard Heathfield <do******@addre ss.co.uk.invali d> wrote in message
news:<bm******* ***@hercules.bt internet.com>.. .
Kevin D. Quitt wrote:
>
> #define true (1/(sizeof 'a' - 1))
Um, this resolves to 1/0 in C++, and either 1/0 or 0 in C. None of these
values is typically associated with the concept of truth in either C or
C++. :-)


In C it resolves identically with (1/(sizeof(int)-1)). That could be
0, or 1, or 1/0, depending upon sizeof(int);


I did indeed miss the 1 possibility (where sizeof(int) is 2). Sorry about
that.
For that reason, it
doesn't belong in code intended to be portable. However, it is a
correct (if not particularly well-motivated) definition for 'true'
when sizeof(int)==2.


Yes. Oops.
--
Richard Heathfield : bi****@eton.pow ernet.co.uk
"Usenet is a strange place." - Dennis M Ritchie, 29 July 1999.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
K&R answers, C books, etc: http://users.powernet.co.uk/eton
Nov 13 '05 #322
On Sun, 19 Oct 2003 15:53:52 +0200, in comp.lang.c , Sidney Cadot
<si****@jigsaw. nl> wrote:
Mark McIntyre wrote:
??? with malloc() the compiler can always infer the correct type.
If I have the expression...
malloc(1000*siz eof(double))

...with the intent of using its value as a 1000-element array of doubles
later on, it should have type (double *), not type (void *). Since
malloc() doesn't know this,


but the compiler does, because you assign the return of malloc to a
double*.
I will help the compiler a bit to change the
returned value to (double *) ASAP.
The compiler doesn't need this help. It automatically does it just as
soon as possible, merely because you assigned it to a double. It can't
happen any faster than that.
Just because you would usually write something like

double *x = malloc(1000*siz eof(double))

... which makes the problem go away soon enough, doesn't mean that the
type of the malloc expression alone should be allowed to be (void *)
longer than necessary.
You're making bad excuses for an unnecessary practice. You should stop
and read yourself...
Possible but unlikely - its more likely that the C++ compiler will
pick up on C++ errors which are correct C, and fool you into
"correcting " them badly.


Not in my experience.


Then your experience is more limited than you think.
BTW do you also try to compile with a fortran and pascal compiler? To be sure?


Is it really needed to aim for ridicule?


When someone posts ridiculous things, ridicule is often called for.
But to answer your question: No, since this doesn't help to reduce
mistakes in my C code I don't. C++ however can help in that respect.
No, it can't. It can only *introduce* them, or fool you into thinking
you've found an error that is NOT an error.
What C compiler would you recommend, if I want a warning on an integer
being passed for an enum parameter (as in my example)? Or would you say
that I am wrong in wanting this?


since "The expression that defines the value of an enumeration
constant shall be an integer constant expression that has a value
representable as an int." [6.7.2.2(2)] I don't see that it makes no
sense to expect any C compiler to complain about this. C is not C++.


True, but being a practical person I will use any tool at my disposal to
discover and correct potential problems in my code.


"Being a practical person", please provide an example of C code in
which the fact that you pass an int where an int is expected, matters.
Just out of curiousity: do you consider it good style to pass an integer
literal as an argument to a function expecting an enum?


Why not? An enum /is/ an int.
--
Mark McIntyre
CLC FAQ <http://www.eskimo.com/~scs/C-faq/top.html>
CLC readme: <http://www.angelfire.c om/ms3/bchambless0/welcome_to_clc. html>
----== Posted via Newsfeed.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeed.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= 19 East/West-Coast Specialized Servers - Total Privacy via Encryption =---
Nov 13 '05 #323
On Sun, 19 Oct 2003 15:39:49 +0200, in comp.lang.c , Sidney Cadot
<si****@jigsaw. nl> wrote:
Mark McIntyre wrote:
"Benefit" to incorrectly flag errors that don't exist? Shurely shome
mishtake.
To flag potential problems.


but *what* potential problems? if you C compiler isn't flagging them,
then either
a) its a bad C compiler: get another, or
b) its not actually an error in the first place, and you have a
serious misunderstandin g of C.
Tell me, do you refuse to use the warning
facilities by your favorite C compiler? If not, why not?


How does this relate to your insistence in compiling your C as C++ "to
trap potential errors?"
--
Mark McIntyre
CLC FAQ <http://www.eskimo.com/~scs/C-faq/top.html>
CLC readme: <http://www.angelfire.c om/ms3/bchambless0/welcome_to_clc. html>
----== Posted via Newsfeed.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeed.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= 19 East/West-Coast Specialized Servers - Total Privacy via Encryption =---
Nov 13 '05 #324
James Kuyper wrote:
...with the intent of using its value as a 1000-element array of doubles
later on, it should have type (double *), not type (void *). Since
malloc() doesn't know this, I will help the compiler a bit to change the
returned value to (double *) ASAP.

Just because you would usually write something like

double *x = malloc(1000*siz eof(double))

... which makes the problem go away soon enough, doesn't mean that the
type of the malloc expression alone should be allowed to be (void *)
longer than necessary.

In C, you're not helping the compiler in any way.


But surely, I am. It can now detect assignment to the wrong type of
pointer, for example:

int *x = malloc(1000*siz eof(double)) /* would go unnoticed */
int *y = (double*)malloc (1000*sizeof(do uble)) /* would be noticed */
Inserting the cast
wouldn't make it become a double* any earlier than it would without
the cast.
Yes it would. See above.
Either way, it still gets converted to 'double*' after the
call to malloc() and before the assignment to 'x', and there's
absolutely nothing else happening between those two events. Unless
your code actually needs to work with C++, this is pointless.
This whole discussion is based on my assertion that it is sometimes
useful to be able to compile a C program with a C++ compiler.
The only thing you're doing, is turning off the error or warning
messages that would occur is you had a missing declaration of 'malloc'
(C only),
Any decent compiler nowadays has warnings for missing prototypes.
or a declaration of malloc() in scope with a return type
that can be converted to the destination type, but shouldn't be. In C,
this would have to be a function or function pointer with internal
linkage. It can be done with namespaces or function overloading in
C++.

There's a number of reasons why 'new' is the superior approach to this
problem in C++.
True, though I am disgusted by the 'delete [] array' syntax :-)
BTW do you also try to compile with a fortran and pascal compiler? To be sure?


Is it really needed to aim for ridicule?

But to answer your question: No, since this doesn't help to reduce
mistakes in my C code I don't. C++ however can help in that respect.


Not if you've got a decent C compiler. Most C++ compilers have a mode
where they compile according to C rules. Truly legitimate warnings
that are not specific to C++ should be the same in both modes.


I'm trying to argue that C++ is rightly more picky about some things
that are (unfortunately) legal C. See my enum example in a previous post.
The warnings that a C++ compiler will give you that a good C compiler
won't give you are mainly warnings about things that aren't really a
problem in C.
I think implicit int->enum conversions are a problem, notwithstanding it
is allowed in C.
And that's equally true if you replace "C++" with "Fortran" or "Pascal".


Yeah yeah ... :-)

Best regards,

Sidney

Nov 13 '05 #325
Mark McIntyre wrote:
On Sun, 19 Oct 2003 15:53:52 +0200, in comp.lang.c , Sidney Cadot
<si****@jigsaw. nl> wrote:
??? with malloc() the compiler can always infer the correct type.


If I have the expression...
malloc(1000*siz eof(double))

...with the intent of using its value as a 1000-element array of doubles
later on, it should have type (double *), not type (void *). Since
malloc() doesn't know this,

but the compiler does, because you assign the return of malloc to a
double*.


Please read carefully. I was talking about the malloc expression, not
the assignment expression.
I will help the compiler a bit to change the
returned value to (double *) ASAP.

The compiler doesn't need this help. It automatically does it just as
soon as possible, merely because you assigned it to a double. It can't
happen any faster than that.


.... So how to you explain the error on:

int *x = (double *)malloc(1000*s izeof(double))

?
Just because you would usually write something like

double *x = malloc(1000*siz eof(double))

... which makes the problem go away soon enough, doesn't mean that the
type of the malloc expression alone should be allowed to be (void *)
longer than necessary.


You're making bad excuses for an unnecessary practice. You should stop
and read yourself...


I did. I disagree.
Possible but unlikely - its more likely that the C++ compiler will
pick up on C++ errors which are correct C, and fool you into
"correctin g" them badly.


Not in my experience.


Then your experience is more limited than you think.


If it makes you happy to think so, be my guest.
BTW do you also try to compile with a fortran and pascal compiler? To be sure?


Is it really needed to aim for ridicule?


When someone posts ridiculous things, ridicule is often called for.


Not applicable. We may disagree profoundly on this issue, but I have not
made any ridiculous statements. Perhaps unconventional ones, but that's
different. I would hope you consider this.
But to answer your question: No, since this doesn't help to reduce
mistakes in my C code I don't. C++ however can help in that respect.


No, it can't. It can only *introduce* them, or fool you into thinking
you've found an error that is NOT an error.


I chose the word "mistakes" on purpose, and you're talking about an
"error". These two are different things (e.g., passing an integer to an
enum parameter is not an error in C, but in my coding style it's a mistake).
What C compiler would you recommend, if I want a warning on an integer
being passed for an enum parameter (as in my example)? Or would you say
that I am wrong in wanting this?

since "The expression that defines the value of an enumeration
constant shall be an integer constant expression that has a value
representabl e as an int." [6.7.2.2(2)] I don't see that it makes no
sense to expect any C compiler to complain about this. C is not C++.

That does not answer my question.
True, but being a practical person I will use any tool at my disposal to
discover and correct potential problems in my code.


"Being a practical person", please provide an example of C code in
which the fact that you pass an int where an int is expected, matters.


If you like using ints and enums interchangeably , that's fine by me.
Just don't expect the same of me please.
Just out of curiousity: do you consider it good style to pass an integer
literal as an argument to a function expecting an enum?

Why not? An enum /is/ an int.


Well, I would not expect to see any enum's in your programs then. Saves
a keystroke each time :-)

Best regards,

Sidney

Nov 13 '05 #326
"James Kuyper" <ku****@wizard. net> wrote in message
news:8b******** *************** ***@posting.goo gle.com...
PJ we already know you're a heathen, so no need to chime in... :-)


Nice of you to notice. In fact, I've been officially recognized as
a heathen by the All Catholic Church. It's a point of pride with me.


Congratulations ! How did you win this honor? No one's ever bothered
giving me official recognition. :-(


I married a nice Catholic girl. I told the priest who registered our banns
that I was raised in a Protestant household. That didn't bother him too
much until I observed that I never quite got around to being baptized.
At that point, he wrote 'heathen' next to my name and literally sent me
out of the room. Never spoke to me again, in fact.

(That marriage lasted less than five years. Tana and I were married in
Manhattan Borough City Hall by a J.P. We'll celebrate our 26th anniversary
in Kona next week with our kids. Go figure.)

For the record -- and your C question is?

P.J. Plauger
Dinkumware, Ltd.
http://www.dinkumware.com
Nov 13 '05 #327
Mark McIntyre wrote:
Mark McIntyre wrote:
"Benefit" to incorrectly flag errors that don't exist? Shurely shome
mishtake.
To flag potential problems.


but *what* potential problems? if you C compiler isn't flagging them,
then either
a) its a bad C compiler: get another, or
b) its not actually an error in the first place, and you have a
serious misunderstandin g of C.


Again, you've changed "potential problem" into "error". The distinction
is important.
Tell me, do you refuse to use the warning
facilities by your favorite C compiler? If not, why not?

How does this relate to your insistence in compiling your C as C++ "to
trap potential errors?"


You don't seem to make the distinction between potential problems and
errors, flagged as such by the compiler. I want to make this distincion
clear in order to explain the rationale for compiling my C code using a
C++ compiler; you are quite stubbornly refusing to admit that this way
of working could expose problems.

Since I see relatively little difference between cranking up the warning
level of the C compiler, and running a C++ compiler on my code once in a
while, I feel it is rather illogical to dismiss the latter as a crazy
technique while admitting the former is ok.

Consider

if (x=foo()) bar();

.... Most C compilers nowadays flag this as a warning. In cases like
this, I am happy to write

if ((x=foo()) bar();

which shuts up the error, in gcc at least.

By doing this I am making a concession to the compiler. Likewise, I make
the concession of casting malloc results, in order to be able to trace
down more problems (not 'errors') with a C++ compile of my C code.

Now I am quite sure that you would use warnings, and I am guessing that
you would also make these kinds of (small) concessions to the C compiler
to get more warnings.

If that is the case, why the knee-jerk reaction to my casting of malloc
results? I think they're quite equivalent things.

Best regards,

Sidney Cadot

Nov 13 '05 #328

On Mon, 20 Oct 2003, Sidney Cadot wrote:

James Kuyper wrote:
[Sidney Cadot wrote:]
Just because you would usually write something like

double *x = malloc(1000*siz eof(double))

... which makes the problem go away soon enough, doesn't mean that the
type of the malloc expression alone should be allowed to be (void *)
longer than necessary.
In C, you're not helping the compiler in any way.


But surely, I am.


Nope, you're not. In fact, you're *hurting* the compiler, by making
it lex nine more characters than it would have to in a program written
by, say, Mark. :-)
It can now detect assignment to the wrong type of
pointer, for example:

int *x = malloc(1000*siz eof(double)) /* would go unnoticed */
No competent programmer would ever write a line such as the above.
(I can say this because you've already assured me that *you* would
never write the above, and neither would I, so I'm safe.) The
idiomatic c.l.c way of malloc'ing a 1000-element array is:

int *x = malloc(1000 * sizeof *x);

No cast, no error (not even if sizeof(double) != sizeof(int)).
Plus, you get a warning if 'malloc' is improperly prototyped to
return anything other than (int*) or (void*). Plus, everything
to the right of the = sign can be left alone if the type of 'x'
ever changes -- which can make a big difference in medium-sized
projects.

[OT: I personally think C++'s 'new' syntax made a step backwards in
requiring the type of 'x' to be explicitly specified by the
programmer in int *x = new int[1000]; That might be the fault
of C++'s "inexplicab le" lack of 'typeof', though.]

int *y = (double*)malloc (1000*sizeof(do uble)) /* would be noticed */
Sure, it would. But you've got three type-names on that line:
'int', 'double', and 'double'. How would you make sure that you
got the middle one right? I mean,
int *y = (int*)malloc(10 00*sizeof(doubl e)) /* would be noticed */
is legal C that wouldn't necessarily be caught by either a C or a
C++ compiler. And it looks very similar to your preferred style.
What's the tip-off that the above line is completely wrong? How
many man-hours do you think it would take to find the bug?

Inserting the cast
wouldn't make it become a double* any earlier than it would without
the cast.


Yes it would. See above.


No, it wouldn't. See the Standard.

> Either way, it still gets converted to 'double*' after the
call to malloc() and before the assignment to 'x', and there's
absolutely nothing else happening between those two events. Unless
your code actually needs to work with C++, this is pointless.


This whole discussion is based on my assertion that it is sometimes
useful to be able to compile a C program with a C++ compiler.


And that assertion has been rejected by most of the people involved
in this discussion. If you want to create an executable from a file
of C source code, use a C compiler! If you want to link C and C++
code together, use a C compiler on the C part, a C++ compiler on the
C++ part, and extern "C" in the headers.

There's a number of reasons why 'new' is the superior approach to this
problem in C++.


True, though I am disgusted by the 'delete [] array' syntax :-)


So are we all. Still, new/delete *is* the idiomatic C++ style, and
should be used in C++ code. Anyone who tries to write C in C++ is
IMO just as silly as those who write Fortran in C. The languages
operate under completely different paradigms.

I'm trying to argue that C++ is rightly more picky about some things
that are (unfortunately) legal C. See my enum example in a previous post.


Couldn't you just avoid the use of those "unfortunat e" constructs in
your own code? After all, your average C++ compiler doesn't warn about:

Use of 'goto'
Improperly parenthesized arithmetic expressions
Use of = for ==, or vice versa
Invasion of implementation namespace
Possible integer overflows
Failure to fflush(stdout)
Memory leaks
Incorrect pointer usage
Possible buffer overflows
The warnings that a C++ compiler will give you that a good C compiler
won't give you are mainly warnings about things that aren't really a
problem in C.


I think implicit int->enum conversions are a problem, notwithstanding it
is allowed in C.


Obviously, hardly anybody here does. Do you have any other
examples of things that are allowed in C, but not in C++, of
which you believe the C++ way is better? (Everyone knows the
laundry list of C/C++ differences, and everyone has their own
pet peeves about C features, but I have never to my knowledge
seen anyone claim that the C/C++ intersection language actually
*fixes* any of C's problems.)

-Arthur
Nov 13 '05 #329
James Kuyper wrote:
Christian Bau wrote:
In article <bm**********@g lue.ucr.edu>, th*@cs.ucr.edu wrote:

C and C++ have a relatively large semantic intersection, i.e., set of
programs to which C and C++ attach identical behavior. It's my
impession that the intersecton includes the majority of actual C
programs.


I think the majority of actual C programs will not compile as C++
programs at all; if the programmer never heard of C++ then it is just
too easy to have "new", "class" or "template" as an identifier.

I doubt that this problem, while quite real, affects "a majority" of
actual C programs. I think the number of C programs that wouldn't
compile because they still use unprototyped function declarations
(mainly in legacy code, one hopes) is a much larger. Does anyone care to
provide actual numbers? I have no idea where to find them.


well, the code I work on has one structure with a member class. It
also has a depressing lack of prototypes in the function definitions,
even though all the functions (well, most of them) have prototype
declarations (as well as non-prototype declarations - despite the fact
that we don't have any non-ANSI compilers to support). I've tried to
get some of this stuff fixed up, but the corpus is too large and there
are too many uninterested parties in charge of it to actually clean it
up. I fantasize about getting it clean enough to compile under a C++
compiler - not because we'd necessarily want to release such a
version, but simply because so much of the code would have been
improved in order to get to the point where that was possible.
Depressingly, it has been hard work to get people to the point where
'gcc -Wall -Wmissing-prototypes -Wstrict-prototypes' compiles
reasonably cleanly - we are not there yet. The volume of code?
Multiple millions of lines in total.

--
Jonathan Leffler #include <disclaimer.h >
Email: jl******@earthl ink.net, jl******@us.ibm .com
Guardian of DBD::Informix v2003.04 -- http://dbi.perl.org/

Nov 13 '05 #330

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
11266
by: William C. White | last post by:
Does anyone know of a way to use PHP /w Authorize.net AIM without using cURL? Our website is hosted on a shared drive and the webhost company doesn't installed additional software (such as cURL) on the server because of that. Our site will have an SSL certificate next week, so I would like to use AIM instead of SIM, however, I don't know how to send data via POST over https and recieve data from the Authorize.net server over an https...
2
5865
by: Albert Ahtenberg | last post by:
Hello, I don't know if it is only me but I was sure that header("Location:url") redirects the browser instantly to URL, or at least stops the execution of the code. But appearantely it continues to execute the code until the browser send his reply to the header instruction. So an exit(); after each redirection won't hurt at all
3
23053
by: James | last post by:
Hi, I have a form with 2 fields. 'A' 'B' The user completes one of the fields and the form is submitted. On the results page I want to run a query, but this will change subject to which field is completed.
0
8508
by: Ollivier Robert | last post by:
Hello, I'm trying to link PHP with Oracle 9.2.0/OCI8 with gcc 3.2.3 on a Solaris9 system. The link succeeds but everytime I try to run php, I get a SEGV from inside the libcnltsh.so library. 354 roberto@ausone:Build/php-4.3.2> ldd /opt/php4/bin/php libsablot.so.0 => /usr/local/lib/libsablot.so.0 libstdc++.so.5 => /usr/local/lib/libstdc++.so.5 libm.so.1 => /usr/lib/libm.so.1
1
8621
by: Richard Galli | last post by:
I want viewers to compare state laws on a single subject. Imagine a three-column table with a drop-down box on the top. A viewer selects a state from the list, and that state's text fills the column below. The viewer can select states from the drop down lists above the other two columns as well. If the viewer selects only one, only one column fills. If the viewer selects two states, two columns fill. Etc. I could, if appropriate, have...
4
18317
by: Albert Ahtenberg | last post by:
Hello, I have two questions. 1. When the user presses the back button and returns to a form he filled the form is reseted. How do I leave there the values he inserted? 2. When the user comes back to a page where he had a submitted POST data the browser keeps telling that the data has expired and asks if repost. How to avoid that? I tried registering all POST and GET vars as SESSION vars but
1
6890
by: inderjit S Gabrie | last post by:
Hi all Here is the scenerio ...is it possibly to do this... i am getting valid course dates output on to a web which i have designed ....all is okay so far , look at the following web url http://www.mis.gla.ac.uk/biquery/training/ but each of the courses held have maximum of 8 people that could be
2
31461
by: Jack | last post by:
Hi All, What is the PHP equivilent of Oracle bind variables in a SQL statement, e.g. select x from y where z=:parameter Which in asp/jsp would be followed by some statements to bind a value to :parameter I dont like the idea of making the SQL statement on the fly without binding parameters as I dont want a highly polluted SQL cache.
3
23617
by: Sandwick | last post by:
I am trying to change the size of a drawing so they are all 3x3. the script below is what i was trying to use to cut it in half ... I get errors. I can display the normal picture but not the results of the picture half the size. The PHP I have installed support 1.62 or higher. And all I would like to do is take and image and make it fit a 3x3. Any suggestions to where I should read or look would be appreciated.
0
9934
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, weíll explore What is ONU, What Is Router, ONU & Routerís main usage, and What is the difference between ONU and Router. Letís take a closer look ! Part I. Meaning of...
0
9789
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
11137
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10736
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
10409
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
5989
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4608
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
4214
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3230
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.